using System; namespace DateTimeStudy { /// /// DateTime学习 /// 全球时间 /// /// http://www.cnblogs.com/artech/archive/2010/09/04/InsideDateTime_01.html public class DateTimeStudy { #region 1、你是否知道System.DateTimeKind /* 说明:System.DateTime类型不是class,而是一个struct,换言之它是值类型,而不是引用类型。 DateTime处理包含我们熟悉的年、月、日、时、分、秒和毫秒等基本属性之外,还具有一个重要的表示时间类型(Kind)的属性:Kind。 该属性的类型为System.DateTimeKind枚举。DateTimeKind定义如下,它具有三个枚举值:Unspecified、Utc和Local。 后两个分别表示UTC(格林威治时间)和本地时间。Unspecified顾名思义,就是尚未指定具体类型,这是默认值。 */ /* DateTimeKind 代码 [Serializable, ComVisible(true)] public enum DateTimeKind { Unspecified, Utc, Local } */ /* 在DateTime类型中,表示时间类型的Kind属性是只读的,只能在构造函数中指定。 虽然,Kind属性是只读的,但是我们还用另外一中设定Kind的方式,那就是调用DateTime的静态方法的SpecifyKind。该方法不会真正去修改一个现有DateTime对象的Kind属性,而是会重新创建一个新的DateTime对象。方法返回的对象具有和指定时间相同的基本属性(年、月、日、时、分、秒和毫秒),该DateTime对象具有你指定的DateTimeKind值。 */ /// /// 创建时间 /// 无参数 /// public DateTime CreateDateTime() { return new DateTime(); } /// /// 创建时间 /// ticks /// public DateTime CreateDateTime(long ticks) { return new DateTime(ticks); } /// /// 创建时间 /// ticks和DateTimeKind /// public DateTime CreateDateTime(long ticks, DateTimeKind kind) { return new DateTime(ticks,kind); } /// /// 创建时间 /// 年 月 日 时 分 秒 /// public DateTime CreateDateTime(int year, int month, int day, int hour, int minute, int second) { return new DateTime(year, month, day, hour, minute, second); } /// /// 创建时间 /// 年 月 日 时 分 秒 DateTimeKind /// public DateTime CreateDateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind kind) { return new DateTime(year, month, day, hour, minute, second, kind); } /// /// 创建时间 /// 年 月 日 时 分 秒 豪秒 /// public DateTime CreateDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond) { return new DateTime(year, month, day, hour, minute, second, millisecond); } /// /// 创建时间 /// 年 月 日 时 分 秒 豪秒 DateTimeKind /// public DateTime CreateDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind) { return new DateTime(year, month, day, hour, minute, second, millisecond, kind); } #endregion #region 2、几个常用DateTime对象的DateTimeKind #endregion #region 3、DateTime的对等性问题 #endregion #region 4、通过DateTime类型的ToLocalTime和ToUniversalTime方法实现UTC和Local的转换 #endregion #region 5、通过TimeZoneInfo实现Utc和Local的转换 #endregion } }