netframework中的日期时间类型

netframework中的日期时间类型

ID:37855201

大小:287.00 KB

页数:11页

时间:2019-06-01

netframework中的日期时间类型_第1页
netframework中的日期时间类型_第2页
netframework中的日期时间类型_第3页
netframework中的日期时间类型_第4页
netframework中的日期时间类型_第5页
资源描述:

《netframework中的日期时间类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、概述  写下本文缘于前几天博客园一位朋友发表了一篇.NET面试题的文章,其中一个关于DateTime的问题引起了大家激烈的争论,鉴于日期时间类型是大家开发中会频繁使用的一个中数据类型,这里我们有必要来对.NETFramework中的日期时间类型做一个深入的认识。  从.NETFramework1.0开始,就提供了DateTime类型来表示一个日期时间类型,它是一个结构类型,并且不可以为空,这在一定程度上给我们在往数据库中保存数据时带来了很大的麻烦,因为我们知道,在数据库中datatime类型是可以为Null的,为了解决这个问题,不得不经常使用DateTime.MinValue来表示,但这并不是

2、我们想要的。幸运的是到了.NETFramework2.0中,提供了可空类型,此时我们就可以使用Nullable来表示一个日期时间类型,它是可以为Null的,这给我们带来了极大的方便。  到了.NETFramework3.5中,又为我们提供了一个全新的日期时间类型DateTimeOffset,它通常以相对于格林威治时间(GMT,GreenwichMeanTime)的日期和时间来表示,格林威治时间又被称为国际标准时间UTC(UniversalTimeCode)。除此之外,在.NETFramework中还为我们提供了TimeZone类用来表示时区,到了.NETFramework3

3、.5中,对TimeZone类进一步增强,提供了TimeZoneInfo类来表示世界上的任何时区。  在本文中,我们将对以上日期时间类型、时区类进行详细的介绍。  DateTime和DateTimeOffset  DateTime值类型表示值范围在公元0001年1月1日午夜12:00:00到公元9999年12月31日晚上11:59:59之间的日期和时间;DateTimeOffset包含一个DateTime值以及一个名为Offset属性,该属性用于确定当前DateTimeOffset实例的日期和时间与UTC之间的差值,我们先来看一下这段代码的输出:  staticvoidMain(string[]

4、args)  {  Console.WriteLine(DateTime.Now);  Console.WriteLine(DateTimeOffset.Now);  }  输出结果为:  可以看到,DateTime输出了日期和时间,DateTimeOffset类型不仅输出了日期和时间,还给出当前时间与UTC之间的差值。接下来我们再看一段代码,如何手工构造一个DateTime和DateTimeOffset实例:  staticvoidMain(string[]args)  {  DateTimedateA=newDateTime(2008,8,26,23,1,48);  DateTimeOff

5、setdateB=newDateTimeOffset(2008,8,26,23,1,48,  newTimeSpan(4,0,0));  Console.WriteLine(dateA);  Console.WriteLine(dateB);  }  输出结果如下图所示:转换DateTime为DateTimeOffset  通过上面的两个例子,大家应该对DateTimeOffset有了一个基本的认识,DateTimeOffset提供了比DateTime更高程度的时区识别能力,接下来我们看如何在DateTime和DateTimeOffset之间进行转换,开始之前我们先了解一下DateTimeKi

6、nd枚举,在DateTime中提供了一个名为Kind的属性,它用来指示DateTime对象是表示本地时间、国际标准时间(UTC),还是既不指定为本地时间,也不指定为国际标准时间(UTC),DateTimeKind的定义如下:  publicenumDateTimeKind  {  Unspecified,  Utc,  Local  }  对于UTC和本地DateTime值,得到的DateTimeOffset值的Offset属性准确反映UTC或本地时区偏移量,如下面的代码将UTC时间转换为与之等效的DateTimeOffset值:  staticvoidMain(string[]args)  

7、{  DateTimedateA=newDateTime(2008,8,24,23,33,58);  DateTimedateB=DateTime.SpecifyKind(dateA,DateTimeKind.Utc);  DateTimeOffsetdateC=dateB;  Console.WriteLine(dateB);  Console.WriteLine(dateC);  }输出结果如

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。