学用 ASP.Net 之 System.DateTime 结构
成员:
/* 字段 */DateTime.MaxValue; //9999/12/31 23:59:59DateTime.MinValue; //0001/01/01 00:00:00/* 静态属性 */DateTime.Now; //当前日期和时间DateTime.Today; //当前日期DateTime.UtcNow; //当前日期和时间(UTC)/* 静态方法 */DateTime.Compare(); //时间对比, 或返回 -1、0、1DateTime.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、1Equals(); //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/22011-1-22011.1.22011-01-022011/01/022011.01.0211-1-211/1/211.1.211/01/022011年1月2日2011年1月2日,星期日星期日,2011年1月2日2011年1月2日 3:042011年1月2日 03:042011年1月2日 上午 3:042011年1月2日 上午 03:042011年1月2日,星期日 3:042011年1月2日,星期日 03:042011年1月2日,星期日 上午 3:042011年1月2日,星期日 上午 03:04星期日,2011年1月2日 3:04星期日,2011年1月2日 03:04星期日,2011年1月2日 上午 3:04星期日,2011年1月2日 上午 03:042011年1月2日 3:04:562011年1月2日 03:04:562011年1月2日 上午 3:04:562011年1月2日 上午 03:04:562011年1月2日,星期日 3:04:562011年1月2日,星期日 03:04:562011年1月2日,星期日 上午 3:04:562011年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:562011/1/2 3:042011/1/2 03:042011/1/2 上午 3:042011/1/2 上午 03:042011-1-2 3:042011-1-2 03:042011-1-2 上午 3:042011-1-2 上午 03:042011.1.2 3:042011.1.2 03:042011.1.2 上午 3:042011.1.2 上午 03:042011-01-02 3:042011-01-02 03:042011-01-02 上午 3:042011-01-02 上午 03:042011/01/02 3:042011/01/02 03:042011/01/02 上午 3:042011/01/02 上午 03:042011.01.02 3:042011.01.02 03:042011.01.02 上午 3:042011.01.02 上午 03:0411-1-2 3:0411-1-2 03:0411-1-2 上午 3:0411-1-2 上午 03:0411/1/2 3:0411/1/2 03:0411/1/2 上午 3:0411/1/2 上午 03:0411.1.2 3:0411.1.2 03:0411.1.2 上午 3:0411.1.2 上午 03:0411/01/02 3:0411/01/02 03:0411/01/02 上午 3:0411/01/02 上午 03:042011/1/2 3:04:562011/1/2 03:04:562011/1/2 上午 3:04:562011/1/2 上午 03:04:562011-1-2 3:04:562011-1-2 03:04:562011-1-2 上午 3:04:562011-1-2 上午 03:04:562011.1.2 3:04:562011.1.2 03:04:562011.1.2 上午 3:04:562011.1.2 上午 03:04:562011-01-02 3:04:562011-01-02 03:04:562011-01-02 上午 3:04:562011-01-02 上午 03:04:562011/01/02 3:04:562011/01/02 03:04:562011/01/02 上午 3:04:562011/01/02 上午 03:04:562011.01.02 3:04:562011.01.02 03:04:562011.01.02 上午 3:04:562011.01.02 上午 03:04:5611-1-2 3:04:5611-1-2 03:04:5611-1-2 上午 3:04:5611-1-2 上午 03:04:5611/1/2 3:04:5611/1/2 03:04:5611/1/2 上午 3:04:5611/1/2 上午 03:04:5611.1.2 3:04:5611.1.2 03:04:5611.1.2 上午 3:04:5611.1.2 上午 03:04:5611/01/02 3:04:5611/01/02 03:04:5611/01/02 上午 3:04:5611/01/02 上午 03:04:561月2日1月2日2011-01-02T03:04:56.78900002011-01-02T03:04:56.7890000Sun, 02 Jan 2011 03:04:56 GMTSun, 02 Jan 2011 03:04:56 GMT2011-01-02T03:04:563:0403:04上午 3:04上午 03:043:04:5603:04:56上午 3:04:56上午 03:04:562011-01-02 03:04:56Z2011年1月1日 19:04:562011年1月1日 19:04:562011年1月1日 下午 7:04:562011年1月1日 下午 07:04:562011年1月1日,星期六 19:04:562011年1月1日,星期六 19:04:562011年1月1日,星期六 下午 7:04:562011年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:562011年1月2011.12011年1月2011.1================================1/2/20111/2/1101/02/1101/02/201111/01/022011-01-0202-Jan-11Sunday, January 02, 2011January 02, 2011Sunday, 02 January, 201102 January, 2011Sunday, January 02, 2011 3:04 AMSunday, January 02, 2011 03:04 AMSunday, January 02, 2011 3:04Sunday, January 02, 2011 03:04January 02, 2011 3:04 AMJanuary 02, 2011 03:04 AMJanuary 02, 2011 3:04January 02, 2011 03:04Sunday, 02 January, 2011 3:04 AMSunday, 02 January, 2011 03:04 AMSunday, 02 January, 2011 3:04Sunday, 02 January, 2011 03:0402 January, 2011 3:04 AM02 January, 2011 03:04 AM02 January, 2011 3:0402 January, 2011 03:04Sunday, January 02, 2011 3:04:56 AMSunday, January 02, 2011 03:04:56 AMSunday, January 02, 2011 3:04:56Sunday, January 02, 2011 03:04:56January 02, 2011 3:04:56 AMJanuary 02, 2011 03:04:56 AMJanuary 02, 2011 3:04:56January 02, 2011 03:04:56Sunday, 02 January, 2011 3:04:56 AMSunday, 02 January, 2011 03:04:56 AMSunday, 02 January, 2011 3:04:56Sunday, 02 January, 2011 03:04:5602 January, 2011 3:04:56 AM02 January, 2011 03:04:56 AM02 January, 2011 3:04:5602 January, 2011 03:04:561/2/2011 3:04 AM1/2/2011 03:04 AM1/2/2011 3:041/2/2011 03:041/2/11 3:04 AM1/2/11 03:04 AM1/2/11 3:041/2/11 03:0401/02/11 3:04 AM01/02/11 03:04 AM01/02/11 3:0401/02/11 03:0401/02/2011 3:04 AM01/02/2011 03:04 AM01/02/2011 3:0401/02/2011 03:0411/01/02 3:04 AM11/01/02 03:04 AM11/01/02 3:0411/01/02 03:042011-01-02 3:04 AM2011-01-02 03:04 AM2011-01-02 3:042011-01-02 03:0402-Jan-11 3:04 AM02-Jan-11 03:04 AM02-Jan-11 3:0402-Jan-11 03:041/2/2011 3:04:56 AM1/2/2011 03:04:56 AM1/2/2011 3:04:561/2/2011 03:04:561/2/11 3:04:56 AM1/2/11 03:04:56 AM1/2/11 3:04:561/2/11 03:04:5601/02/11 3:04:56 AM01/02/11 03:04:56 AM01/02/11 3:04:5601/02/11 03:04:5601/02/2011 3:04:56 AM01/02/2011 03:04:56 AM01/02/2011 3:04:5601/02/2011 03:04:5611/01/02 3:04:56 AM11/01/02 03:04:56 AM11/01/02 3:04:5611/01/02 03:04:562011-01-02 3:04:56 AM2011-01-02 03:04:56 AM2011-01-02 3:04:562011-01-02 03:04:5602-Jan-11 3:04:56 AM02-Jan-11 03:04:56 AM02-Jan-11 3:04:5602-Jan-11 03:04:56January 02January 022011-01-02T03:04:56.78900002011-01-02T03:04:56.7890000Sun, 02 Jan 2011 03:04:56 GMTSun, 02 Jan 2011 03:04:56 GMT2011-01-02T03:04:563:04 AM03:04 AM3:0403:043:04:56 AM03:04:56 AM3:04:5603:04:562011-01-02 03:04:56ZSaturday, January 01, 2011 7:04:56 PMSaturday, January 01, 2011 07:04:56 PMSaturday, January 01, 2011 19:04:56Saturday, January 01, 2011 19:04:56January 01, 2011 7:04:56 PMJanuary 01, 2011 07:04:56 PMJanuary 01, 2011 19:04:56January 01, 2011 19:04:56Saturday, 01 January, 2011 7:04:56 PMSaturday, 01 January, 2011 07:04:56 PMSaturday, 01 January, 2011 19:04:56Saturday, 01 January, 2011 19:04:5601 January, 2011 7:04:56 PM01 January, 2011 07:04:56 PM01 January, 2011 19:04:5601 January, 2011 19:04:56January, 2011January, 2011*/