学用 ASP.Net 之 System.DateTime 结构


成员:
/* 字段 */
DateTime.MaxValue; //9999/12/31 23:59:59
DateTime.MinValue; //0001/01/01 00:00:00

/* 静态属性 */
DateTime.Now;    //当前日期和时间
DateTime.Today;  //当前日期
DateTime.UtcNow; //当前日期和时间(UTC)

/* 静态方法 */
DateTime.Compare();         //时间对比, 或返回 -1、0、1
DateTime.DaysInMonth();     //返回指定月的天数
DateTime.Equals();          //
DateTime.FromBinary();      //从 ToBinary() 的返回值建立
DateTime.FromFileTime();    //从 ToFileTime() 的返回值建立
DateTime.FromFileTimeUtc(); //从 ToFileTimeUtc() 的返回值建立
DateTime.FromOADate();      //从 ToOADate() 的返回值建立
DateTime.IsLeapYear();      //是否是闰年
DateTime.Parse();           //从时间字符串构建
DateTime.ParseExact();      //使用区域与格式信息从时间字符串构建
DateTime.ReferenceEquals(); //
DateTime.SpecifyKind();     //给时间指定不同的区域格式
DateTime.TryParse();        //尝试从时间字符串构建
DateTime.TryParseExact();   //尝试使用区域与格式信息从时间字符串构建

/* 属性 */
Date;        //日期
Day;         //日(1..31)
DayOfWeek;   //周
DayOfYear;   //天(1..366)
Hour;        //时
Kind;        //时间标准的枚举
Millisecond; //毫秒
Minute;      //分
Month;       //月
Second;      //秒
Ticks;       //计时周期数
TimeOfDay;   //时间
Year;        //年

/* 方法 */
Add();                  //+ TimeSpan 类型的时间间隔
AddDays();              //+天
AddHours();             //+时
AddMilliseconds();      //+毫秒
AddMinutes();           //+分
AddMonths();            //+月
AddSeconds();           //+秒
AddTicks();             //+周期数
AddYears();             //+年
CompareTo();            //时间对比, 或返回 -1、0、1
Equals();               //
GetDateTimeFormats();   //获取各种时间格式的数组
IsDaylightSavingTime(); //是否在夏时制内
Subtract();             //- TimeSpan 类型的时间间隔
ToBinary();             //返回一个 long, 测试同 Ticks 属性值
ToFileTime();           //返回 Windows 文件时间, long 类型
ToFileTimeUtc();        //返回 UTC 格式的 Windows 文件时间
ToLocalTime();          //转换为本地时间
ToLongDateString();     //转长日期格式
ToLongTimeString();     //转长时间格式
ToOADate();             //返回 OLE 自动化日期, double 类型
ToShortDateString();    //转短日期格式
ToShortTimeString();    //转短时间格式
ToString();             //格式化输出
ToUniversalTime();      //转换到 UTC 格式

常用的构造函数:
protected void Button1_Click(object sender, EventArgs e)
{
    const string fmt = "yyyy-MM-dd HH:mm:ss fff\n";
    string s1 = new DateTime().ToString(fmt);                          //0001-01-01 00:00:00 000
    string s2 = new DateTime(634295342967890000).ToString(fmt);        //2011-01-02 03:04:56 789
    string s3 = new DateTime(2011, 1, 2).ToString(fmt);                //2011-01-02 00:00:00 000
    string s4 = new DateTime(2011, 1, 2, 3, 4, 56).ToString(fmt);      //2011-01-02 03:04:56 000
    string s5 = new DateTime(2011, 1, 2, 3, 4, 56, 789).ToString(fmt); //2011-01-02 03:04:56 789

    TextBox1.Text = string.Concat(s1, s2, s3, s4, s5);
}

属性测试:
protected void Button1_Click(object sender, EventArgs e)
{
    DateTime dt = new DateTime(2011, 1, 2, 3, 4, 56, 789);
    TextBox1.Text = string.Format("{0}\n{1}\n{2}\n{3}\n{4}\n{5}\n{6}\n{7}\n{8}\n{9}\n{10}\n{11}\n{12}",
            dt.Date,        //2011/1/2 0:00:00
            dt.Day,         //2
            dt.DayOfWeek,   //Sunday
            dt.DayOfYear,   //2
            dt.Hour,        //3
            dt.Kind,        //Unspecified
            dt.Millisecond, //789
            dt.Minute,      //4
            dt.Month,       //1
            dt.Second,      //56
            dt.Ticks,       //634295342967890000
            dt.TimeOfDay,   //03:04:56.7890000
            dt.Year         //2011
        );
}

AddDays():
protected void Button1_Click(object sender, EventArgs e)
{
    DateTime dt = new DateTime(2011, 1, 2); //2011/1/2
    DateTime dt1 = dt.AddDays(1);           //2011/1/3
    DateTime dt2 = dt.AddDays(-2);          //2010/12/31

    TextBox1.Text = string.Format("{0:d}\n{1:d}\n{2:d}", dt, dt1, dt2);
}

DateTime.Parse():
protected void Button1_Click(object sender, EventArgs e)
{
    DateTime dt1 = DateTime.Parse("2011/1/2");               //2011/1/2 0:00:00
    DateTime dt2 = DateTime.Parse("2011年1月2日 3时4分56秒"); //2011/1/2 3:04:56

    TextBox1.Text = string.Concat(dt1, "\n", dt2);
}

转换与重建:
protected void Button1_Click(object sender, EventArgs e)
{
    DateTime dt = new DateTime(2011, 1, 2, 3, 4, 56, 789); //2011/1/2 3:04:56
    long binaryTime = dt.ToBinary();       //634295342967890000                
    long fileTime = dt.ToFileTime();       //129383822967890000               
    long fileUtcTime = dt.ToFileTimeUtc(); //129384110967890000               
    double oleTime = dt.ToOADate();        //40545.1284350579               

    DateTime dt1 = DateTime.FromBinary(binaryTime);       //2011/1/2 3:04:56
    DateTime dt2 = DateTime.FromFileTime(fileTime);       //2011/1/2 3:04:56
    DateTime dt3 = DateTime.FromFileTimeUtc(fileUtcTime); //2011/1/2 3:04:56
    DateTime dt4 = DateTime.FromOADate(oleTime);          //2011/1/2 3:04:56

    TextBox1.Text = string.Format("{0}\n{1}\n{2}\n{3}\n{4}\n{5}\n{6}\n{7}\n{8}",
            dt,
            binaryTime, fileTime, fileUtcTime, oleTime,
            dt1, dt2, dt2, dt4
        );
}

DateTime.DaysInMonth():
protected void Button1_Click(object sender, EventArgs e)
{
    int nDay;
    string str = "";
    for (int i=1; i<=12; i++)
    {
        nDay = DateTime.DaysInMonth(2011, i);
        str += string.Format("2011 年 {0,2} 月: {1} 天\n", i, nDay);
    }
    TextBox1.Text = str;
}
/*********************
2011 年  1 月: 31 天
2011 年  2 月: 28 天
2011 年  3 月: 31 天
2011 年  4 月: 30 天
2011 年  5 月: 31 天
2011 年  6 月: 30 天
2011 年  7 月: 31 天
2011 年  8 月: 31 天
2011 年  9 月: 30 天
2011 年 10 月: 31 天
2011 年 11 月: 30 天
2011 年 12 月: 31 天
**********************/

ToString():
protected void Button1_Click(object sender, EventArgs e)
{
    DateTime dt = new DateTime(2011, 1, 2, 3, 4, 56, 789);
    string[] arr = new string[60];
    arr[0] = dt.ToString();           //2011/1/2 3:04:56
    arr[1] = dt.ToString("d");        //2011/1/2
    arr[2] = dt.ToString("D");        //2011年1月2日
    arr[3] = dt.ToString("f");        //2011年1月2日 3:04
    arr[4] = dt.ToString("F");        //2011年1月2日 3:04:56
    arr[5] = dt.ToString("g");        //2011/1/2 3:04
    arr[6] = dt.ToString("G");        //2011/1/2 3:04:56
    arr[7] = dt.ToString("m");        //1月2日
    arr[8] = dt.ToString("o");        //2011-01-02T03:04:56.7890000
    arr[9] = dt.ToString("r");        //Sun, 02 Jan 2011 03:04:56 GMT
    arr[10] = dt.ToString("s");       //2011-01-02T03:04:56
    arr[11] = dt.ToString("t");       //3:04
    arr[12] = dt.ToString("T");       //3:04:56
    arr[13] = dt.ToString("u");       //2011-01-02 03:04:56Z
    arr[14] = dt.ToString("U");       //2011年1月1日 19:04:56
    arr[15] = dt.ToString("y");       //2011年1月
    arr[16] = dt.ToString("d");       //2011/1/2           
    arr[17] = dt.ToString("dd");      //02           
    arr[18] = dt.ToString("ddd");     //周日           
    arr[19] = dt.ToString("dddd");    //星期日           
    arr[20] = dt.ToString("f");       //2011年1月2日 3:04           
    arr[21] = dt.ToString("ff");      //78           
    arr[22] = dt.ToString("fff");     //789           
    arr[23] = dt.ToString("ffff");    //7890           
    arr[24] = dt.ToString("fffff");   //78900           
    arr[25] = dt.ToString("ffffff");  //789000           
    arr[26] = dt.ToString("fffffff"); //7890000          
    arr[27] = dt.ToString("F");       //2011年1月2日 3:04:56          
    arr[28] = dt.ToString("FF");      //78          
    arr[29] = dt.ToString("FFF");     //789          
    arr[30] = dt.ToString("FFFF");    //789          
    arr[31] = dt.ToString("FFFFF");   //789          
    arr[32] = dt.ToString("FFFFFF");  //789          
    arr[33] = dt.ToString("FFFFFFF"); //789          
    arr[34] = dt.ToString("g");       //2011/1/2 3:04          
    arr[35] = dt.ToString("%h");      //3          
    arr[36] = dt.ToString("hh");      //03          
    arr[37] = dt.ToString("%H");      //3          
    arr[38] = dt.ToString("HH");      //03          
    arr[39] = dt.ToString("%K");
    arr[40] = dt.ToString("m");       //1月2日          
    arr[41] = dt.ToString("mm");      //04          
    arr[42] = dt.ToString("M");       //1月2日          
    arr[43] = dt.ToString("MM");      //01          
    arr[44] = dt.ToString("MMM");     //一月          
    arr[45] = dt.ToString("MMMM");    //一月          
    arr[46] = dt.ToString("s");       //2011-01-02T03:04:56          
    arr[47] = dt.ToString("ss");      //56          
    arr[48] = dt.ToString("t");       //3:04          
    arr[49] = dt.ToString("tt");      //上午          
    arr[50] = dt.ToString("y");       //2011年1月          
    arr[51] = dt.ToString("yy");      //11          
    arr[52] = dt.ToString("yyy");     //2011          
    arr[53] = dt.ToString("yyyy");    //2011          
    arr[54] = dt.ToString("yyyyy");   //02011          
    arr[55] = dt.ToString("%z");      //+8          
    arr[56] = dt.ToString("zz");      //+08          
    arr[57] = dt.ToString("zzz");     //+08:00          
    arr[58] = dt.ToString("yyyy年MM月dd日 HH时mm分ss秒"); //2011年01月02日 03时04分56秒
    arr[59] = dt.ToString("yyyy/M/d H:m:s");             //2011/1/2 3:4:56

    string str = "";
    foreach (string s in arr) { str += s + "\n"; }
    TextBox1.Text = str;
}

GetDateTimeFormats():
protected void Button1_Click(object sender, EventArgs e)
{
    DateTime dt = new DateTime(2011, 1, 2, 3, 4, 56, 789);
    string[] sArr1 = dt.GetDateTimeFormats();
    string[] sArr2 = dt.GetDateTimeFormats(new System.Globalization.CultureInfo("en-US"));
    TextBox1.Text = string.Join("\n", sArr1);
    TextBox1.Text += "\n" + new string('=', 32) + "\n";
    TextBox1.Text += string.Join("\n", sArr2);
}
/* 测试结果:
2011/1/2
2011-1-2
2011.1.2
2011-01-02
2011/01/02
2011.01.02
11-1-2
11/1/2
11.1.2
11/01/02
2011年1月2日
2011年1月2日,星期日
星期日,2011年1月2日
2011年1月2日 3:04
2011年1月2日 03:04
2011年1月2日 上午 3:04
2011年1月2日 上午 03:04
2011年1月2日,星期日 3:04
2011年1月2日,星期日 03:04
2011年1月2日,星期日 上午 3:04
2011年1月2日,星期日 上午 03:04
星期日,2011年1月2日 3:04
星期日,2011年1月2日 03:04
星期日,2011年1月2日 上午 3:04
星期日,2011年1月2日 上午 03:04
2011年1月2日 3:04:56
2011年1月2日 03:04:56
2011年1月2日 上午 3:04:56
2011年1月2日 上午 03:04:56
2011年1月2日,星期日 3:04:56
2011年1月2日,星期日 03:04:56
2011年1月2日,星期日 上午 3:04:56
2011年1月2日,星期日 上午 03:04:56
星期日,2011年1月2日 3:04:56
星期日,2011年1月2日 03:04:56
星期日,2011年1月2日 上午 3:04:56
星期日,2011年1月2日 上午 03:04:56
2011/1/2 3:04
2011/1/2 03:04
2011/1/2 上午 3:04
2011/1/2 上午 03:04
2011-1-2 3:04
2011-1-2 03:04
2011-1-2 上午 3:04
2011-1-2 上午 03:04
2011.1.2 3:04
2011.1.2 03:04
2011.1.2 上午 3:04
2011.1.2 上午 03:04
2011-01-02 3:04
2011-01-02 03:04
2011-01-02 上午 3:04
2011-01-02 上午 03:04
2011/01/02 3:04
2011/01/02 03:04
2011/01/02 上午 3:04
2011/01/02 上午 03:04
2011.01.02 3:04
2011.01.02 03:04
2011.01.02 上午 3:04
2011.01.02 上午 03:04
11-1-2 3:04
11-1-2 03:04
11-1-2 上午 3:04
11-1-2 上午 03:04
11/1/2 3:04
11/1/2 03:04
11/1/2 上午 3:04
11/1/2 上午 03:04
11.1.2 3:04
11.1.2 03:04
11.1.2 上午 3:04
11.1.2 上午 03:04
11/01/02 3:04
11/01/02 03:04
11/01/02 上午 3:04
11/01/02 上午 03:04
2011/1/2 3:04:56
2011/1/2 03:04:56
2011/1/2 上午 3:04:56
2011/1/2 上午 03:04:56
2011-1-2 3:04:56
2011-1-2 03:04:56
2011-1-2 上午 3:04:56
2011-1-2 上午 03:04:56
2011.1.2 3:04:56
2011.1.2 03:04:56
2011.1.2 上午 3:04:56
2011.1.2 上午 03:04:56
2011-01-02 3:04:56
2011-01-02 03:04:56
2011-01-02 上午 3:04:56
2011-01-02 上午 03:04:56
2011/01/02 3:04:56
2011/01/02 03:04:56
2011/01/02 上午 3:04:56
2011/01/02 上午 03:04:56
2011.01.02 3:04:56
2011.01.02 03:04:56
2011.01.02 上午 3:04:56
2011.01.02 上午 03:04:56
11-1-2 3:04:56
11-1-2 03:04:56
11-1-2 上午 3:04:56
11-1-2 上午 03:04:56
11/1/2 3:04:56
11/1/2 03:04:56
11/1/2 上午 3:04:56
11/1/2 上午 03:04:56
11.1.2 3:04:56
11.1.2 03:04:56
11.1.2 上午 3:04:56
11.1.2 上午 03:04:56
11/01/02 3:04:56
11/01/02 03:04:56
11/01/02 上午 3:04:56
11/01/02 上午 03:04:56
1月2日
1月2日
2011-01-02T03:04:56.7890000
2011-01-02T03:04:56.7890000
Sun, 02 Jan 2011 03:04:56 GMT
Sun, 02 Jan 2011 03:04:56 GMT
2011-01-02T03:04:56
3:04
03:04
上午 3:04
上午 03:04
3:04:56
03:04:56
上午 3:04:56
上午 03:04:56
2011-01-02 03:04:56Z
2011年1月1日 19:04:56
2011年1月1日 19:04:56
2011年1月1日 下午 7:04:56
2011年1月1日 下午 07:04:56
2011年1月1日,星期六 19:04:56
2011年1月1日,星期六 19:04:56
2011年1月1日,星期六 下午 7:04:56
2011年1月1日,星期六 下午 07:04:56
星期六,2011年1月1日 19:04:56
星期六,2011年1月1日 19:04:56
星期六,2011年1月1日 下午 7:04:56
星期六,2011年1月1日 下午 07:04:56
2011年1月
2011.1
2011年1月
2011.1
================================
1/2/2011
1/2/11
01/02/11
01/02/2011
11/01/02
2011-01-02
02-Jan-11
Sunday, January 02, 2011
January 02, 2011
Sunday, 02 January, 2011
02 January, 2011
Sunday, January 02, 2011 3:04 AM
Sunday, January 02, 2011 03:04 AM
Sunday, January 02, 2011 3:04
Sunday, January 02, 2011 03:04
January 02, 2011 3:04 AM
January 02, 2011 03:04 AM
January 02, 2011 3:04
January 02, 2011 03:04
Sunday, 02 January, 2011 3:04 AM
Sunday, 02 January, 2011 03:04 AM
Sunday, 02 January, 2011 3:04
Sunday, 02 January, 2011 03:04
02 January, 2011 3:04 AM
02 January, 2011 03:04 AM
02 January, 2011 3:04
02 January, 2011 03:04
Sunday, January 02, 2011 3:04:56 AM
Sunday, January 02, 2011 03:04:56 AM
Sunday, January 02, 2011 3:04:56
Sunday, January 02, 2011 03:04:56
January 02, 2011 3:04:56 AM
January 02, 2011 03:04:56 AM
January 02, 2011 3:04:56
January 02, 2011 03:04:56
Sunday, 02 January, 2011 3:04:56 AM
Sunday, 02 January, 2011 03:04:56 AM
Sunday, 02 January, 2011 3:04:56
Sunday, 02 January, 2011 03:04:56
02 January, 2011 3:04:56 AM
02 January, 2011 03:04:56 AM
02 January, 2011 3:04:56
02 January, 2011 03:04:56
1/2/2011 3:04 AM
1/2/2011 03:04 AM
1/2/2011 3:04
1/2/2011 03:04
1/2/11 3:04 AM
1/2/11 03:04 AM
1/2/11 3:04
1/2/11 03:04
01/02/11 3:04 AM
01/02/11 03:04 AM
01/02/11 3:04
01/02/11 03:04
01/02/2011 3:04 AM
01/02/2011 03:04 AM
01/02/2011 3:04
01/02/2011 03:04
11/01/02 3:04 AM
11/01/02 03:04 AM
11/01/02 3:04
11/01/02 03:04
2011-01-02 3:04 AM
2011-01-02 03:04 AM
2011-01-02 3:04
2011-01-02 03:04
02-Jan-11 3:04 AM
02-Jan-11 03:04 AM
02-Jan-11 3:04
02-Jan-11 03:04
1/2/2011 3:04:56 AM
1/2/2011 03:04:56 AM
1/2/2011 3:04:56
1/2/2011 03:04:56
1/2/11 3:04:56 AM
1/2/11 03:04:56 AM
1/2/11 3:04:56
1/2/11 03:04:56
01/02/11 3:04:56 AM
01/02/11 03:04:56 AM
01/02/11 3:04:56
01/02/11 03:04:56
01/02/2011 3:04:56 AM
01/02/2011 03:04:56 AM
01/02/2011 3:04:56
01/02/2011 03:04:56
11/01/02 3:04:56 AM
11/01/02 03:04:56 AM
11/01/02 3:04:56
11/01/02 03:04:56
2011-01-02 3:04:56 AM
2011-01-02 03:04:56 AM
2011-01-02 3:04:56
2011-01-02 03:04:56
02-Jan-11 3:04:56 AM
02-Jan-11 03:04:56 AM
02-Jan-11 3:04:56
02-Jan-11 03:04:56
January 02
January 02
2011-01-02T03:04:56.7890000
2011-01-02T03:04:56.7890000
Sun, 02 Jan 2011 03:04:56 GMT
Sun, 02 Jan 2011 03:04:56 GMT
2011-01-02T03:04:56
3:04 AM
03:04 AM
3:04
03:04
3:04:56 AM
03:04:56 AM
3:04:56
03:04:56
2011-01-02 03:04:56Z
Saturday, January 01, 2011 7:04:56 PM
Saturday, January 01, 2011 07:04:56 PM
Saturday, January 01, 2011 19:04:56
Saturday, January 01, 2011 19:04:56
January 01, 2011 7:04:56 PM
January 01, 2011 07:04:56 PM
January 01, 2011 19:04:56
January 01, 2011 19:04:56
Saturday, 01 January, 2011 7:04:56 PM
Saturday, 01 January, 2011 07:04:56 PM
Saturday, 01 January, 2011 19:04:56
Saturday, 01 January, 2011 19:04:56
01 January, 2011 7:04:56 PM
01 January, 2011 07:04:56 PM
01 January, 2011 19:04:56
01 January, 2011 19:04:56
January, 2011
January, 2011
*/

你可能感兴趣的:(学用 ASP.Net 之 System.DateTime 结构)