软件测试开发技术.NET Framework中新的日期时间类型

发表于:2009-08-14来源:作者:点击数: 标签:软件测试frameworkFrameworkNetNET
软件 测试 开发技术.NET Framework中新的日期时间类型 .NET 开发技术 关键字:.NET Framework 写下本文缘于前几天博客园一位朋友发表了一篇.NET 面试 题的文章,其中一个关于DateTime的问题引起了大家激烈的争论,鉴于日期时间类型是大家开发中会频繁使用的
软件测试开发技术.NET Framework中新的日期时间类型 .NET 开发技术

关键字:.NET Framework

  写下本文缘于前几天博客园一位朋友发表了一篇.NET面试题的文章,其中一个关于DateTime的问题引起了大家激烈的争论,鉴于日期时间类型是大家开发中会频繁使用的一个中数据类型,这里我们有必要来对.NET Framework中的日期时间类型做一个深入的认识。

  从.NET Framework 1.0开始,就提供了DateTime类型来表示一个日期时间类型,它是一个结构类型,并且不可以为空,这在一定程度上给我们在往数据库中保存数据时带来了很大的麻烦,因为我们知道,在数据库中datatime类型是可以为Null的,为了解决这个问题,不得不经常使用DateTime.MinValue来表示,但这并不是我们想要的。幸运的是到了.NET Framework 2.0中,提供了可空类型,此时我们就可以使用Nullable来表示一个日期时间类型,它是可以为Null的,这给我们带来了极大的方便。

  到了.NET Framework 3.5中,又为我们提供了一个全新的日期时间类型DateTimeOffset,它通常以相对于格林威治时间(GMT,Greenwich Mean Time)的日期和时间来表示,格林威治时间又被称为国际标准时间UTC(Universal Time Code)。除此之外,在.NET Framework中还为我们提供了TimeZone类用来表示时区,到了.NET Framework 3.5中,对TimeZone类进一步增强,提供了TimeZoneInfo类来表示世界上的任何时区。

  在本文中,我们将对以上日期时间类型、时区类进行详细的介绍。

  DateTime和DateTimeOffset

  DateTime 值类型表示值范围在公元0001 年1 月1 日午夜12:00:00 到公元9999 年12月31日晚上11:59:59 之间的日期和时间;DateTimeOffset包含一个DateTime 值以及一个名为Offset属性,该属性用于确定当前 DateTimeOffset 实例的日期和时间与UTC之间的差值,我们先来看一下这段代码的输出:

  static void Main(string[] args)

  {

  Console.WriteLine(DateTime.Now);

  Console.WriteLine(DateTimeOffset.Now);

  }

  输出结果为:

  

TerryLee_0179

  

原文转自:http://www.ltesting.net