关于C# DateTime

——摘自网络

 MSDN:http://msdn.microsoft.com/zh-cn/library/system.datetime.aspx

一、String 转化成 DateTime

DateTime date = Convert.ToDateTime("2013/08/22 18:18");

DateTime date1 = new DateTime(2008, 5, 1, 8, 30, 52);

 

二、DateTime Format

 

DataTime函数

效果

ToString()

2013/8/27 21:18:57

ToShortDateString()

2013/8/27

ToLongDateString()

2013827

ToShortTimeString()

21:18

ToLongTimeString()

21:18:57

ToLocalTime()

2013/8/27 21:18:57 (本地时间)

ToUniversalTime()

2013/8/27 21:18:57 (协调世界时UTC

ToFileTime()

130220831377556105Windows文件时间

ToFileTimeUtc()

130220831377556105Windows文件时间

ToOADate()

41513.8881684606OLE 自动化日期

 

 

 

Label1.Text = dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T13:30:28 

Label2.Text = dt.GetDateTimeFormats('t')[0].ToString();//13:30

Label3.Text = dt.GetDateTimeFormats('y')[0].ToString();//2005年 11月

Label4.Text = dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日

Label5.Text = dt.GetDateTimeFormats('D')[1].ToString();//2005年11月5日,星期六

Label6.Text = dt.GetDateTimeFormats('D')[2].ToString();//星期六,2005年11月5日

Label8.Text = dt.GetDateTimeFormats('M')[0].ToString();//11月5日

Label9.Text = dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 13:30 

Label10.Text = dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 13:30 

Label11.Text = dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 13:30:28 GMT

 

Label1.Text = string.Format("{0:d}", dt);//2005/11/5 

Label2.Text = string.Format("{0:D}", dt);//2005年11月5日

Label3.Text = string.Format("{0:f}", dt);//2005年11月5日 13:30 

Label4.Text = string.Format("{0:F}", dt);//2005年11月5日 13:30:28

Label5.Text = string.Format("{0:g}", dt);//2005-11-5 13:30 

Label6.Text = string.Format("{0:G}", dt);//2005-11-5 13:30:28

Label7.Text = string.Format("{0:M}", dt);//11月5日 

Label8.Text = string.Format("{0:R}", dt);//Sat, 05 Nov 2005 13:30:28 GMT 

Label9.Text = string.Format("{0:s}", dt);//2005-11-05T13:30:28 

Label10.Text = string.Format("{0:t}", dt);//13:30 

Label11.Text = string.Format("{0:T}", dt);//13:30:28 

Label12.Text = string.Format("{0:u}", dt);//2005-11-05 13:30:28Z 

Label13.Text = string.Format("{0:U}", dt);//2005年11月5日 5:30:28 

Label14.Text = string.Format("{0:Y}", dt);//2005年11月 

Label15.Text = string.Format("{0}", dt);//2005/11/5 13:30:28 

Label16.Text = string.Format("{0:yyyyMMddHHmmssffff}", dt);//200511051330284412

 

三、DateTime 日期增减

   

今天

DateTime.Now.Date.ToShortDateString(); 

明天

DateTime.Now.AddDays(1).ToShortDateString();

昨天

DateTime.Now.AddDays(-1).ToShortDateString(); 

星期几(英文)

DateTime.Now.DayOfWeek

星期几(中文)

string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

Console.WriteLine(Day[Convert.ToInt16(DateTime.Now.DayOfWeek)]);

本周第一天(周日)

DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();

本周最后一天(周六)

DateTime.Now.AddDays(Convert.ToDouble((6-Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();

上周第一天

DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();

上周最后一天

DateTime.Now.AddDays(Convert.ToDouble((6-Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();

下周第一天

DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16(DateTime.Now.DayOfWeek))) +7).ToShortDateString();

下周最后一天

DateTime.Now.AddDays(Convert.ToDouble((6-Convert.ToInt16(DateTime.Now.DayOfWeek))) +7).ToShortDateString();

本月第一天

DateTime.Now.ToString("yyyy/MM/01");

本月最后一天

DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();

上月第一天

DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();

上月最后一天

DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();

下月第一天

DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();

下月最后一天

DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();

7天后

DateTime.Now.AddDays(7).ToShortDateString();

7天前

DateTime.Now.AddDays(-7).ToShortDateString();

本年度第一天

DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();

本年度最后一天

DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();

上年度第一天

DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();

上年度最后一天

DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();

下年度第一天

DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();

下年度最后一天

DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();

本季度第一天

DateTime.Now.AddMonths(0-((DateTime.Now.Month-1)%)).ToString("yyyy-MM-01");

本季度最后一天

DateTime.Parse(DateTime.Now.AddMonths(3-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();

下季度第一天

DateTime.Now.AddMonths(3-((DateTime.Now.Month-1)%)).ToString("yyyy-MM-01");

下季度最后一天

DateTime.Parse(DateTime.Now.AddMonths(6-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();

上季度第一天

DateTime.Now.AddMonths(-3-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01");

上季度最后一天

DateTime.Parse(DateTime.Now.AddMonths(0-((DateTime.Now.Month-1)%3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();

 

Label2.Text = dt.AddYears(1).ToString();//2006/11/5 13:47:04 

Label3.Text = dt.AddDays(1.1).ToString();//2005/11/6 16:11:04 

Label4.Text = dt.AddHours(1.1).ToString();//2005/11/5 14:53:04

Label5.Text = dt.AddMilliseconds(1.1).ToString();//2005/11/5 13:47:04 

Label6.Text = dt.AddMonths(1).ToString();//2005/12/5 13:47:04 

Label7.Text = dt.AddSeconds(1.1).ToString();//2005/11/5 13:47:05 

Label8.Text = dt.AddMinutes(1.1).ToString();//2005/11/5 13:48:10 

Label9.Text = dt.AddTicks(1000).ToString();//2005/11/5 13:47:04 

Label11.Text = dt.Add(?).ToString();//问号为一个时间段

Label3.Text = dt.GetHashCode().ToString();//811890660 

Label4.Text = dt.GetType().ToString();//System.DateTime 

Label5.Text = dt.GetTypeCode().ToString();//DateTime

 

四、DateTime 日期比较

Label10.Text = dt.CompareTo(dt).ToString();//0 

Label1.Text = dt.Equals("2005-11-6 16:11:04").ToString();//False 

Label2.Text = dt.Equals(dt).ToString();//True 

 

posted @ 2013-09-04 16:50  LetitiaChan  阅读(102)  评论(0)    收藏  举报