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
}
}