|
|
using System;
|
|
|
|
|
|
namespace DateTimeStudy
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// DateTime学习
|
|
|
/// 全球时间
|
|
|
/// </summary>
|
|
|
/// <example>http://www.cnblogs.com/artech/archive/2010/09/04/InsideDateTime_01.html</example>
|
|
|
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值。
|
|
|
*/
|
|
|
|
|
|
/// <summary>
|
|
|
/// 创建时间
|
|
|
/// 无参数
|
|
|
/// </summary>
|
|
|
public DateTime CreateDateTime()
|
|
|
{
|
|
|
return new DateTime();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 创建时间
|
|
|
/// ticks
|
|
|
/// </summary>
|
|
|
public DateTime CreateDateTime(long ticks)
|
|
|
{
|
|
|
return new DateTime(ticks);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 创建时间
|
|
|
/// ticks和DateTimeKind
|
|
|
/// </summary>
|
|
|
public DateTime CreateDateTime(long ticks, DateTimeKind kind)
|
|
|
{
|
|
|
return new DateTime(ticks,kind);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 创建时间
|
|
|
/// 年 月 日 时 分 秒
|
|
|
/// </summary>
|
|
|
public DateTime CreateDateTime(int year, int month, int day, int hour, int minute, int second)
|
|
|
{
|
|
|
return new DateTime(year, month, day, hour, minute, second);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 创建时间
|
|
|
/// 年 月 日 时 分 秒 DateTimeKind
|
|
|
/// </summary>
|
|
|
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);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 创建时间
|
|
|
/// 年 月 日 时 分 秒 豪秒
|
|
|
/// </summary>
|
|
|
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);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 创建时间
|
|
|
/// 年 月 日 时 分 秒 豪秒 DateTimeKind
|
|
|
/// </summary>
|
|
|
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
|
|
|
}
|
|
|
}
|