C#基础——DateTime

简介: C#基础——DateTime

格式 输出 示例



y 7 string yy = DateTime.Now.ToString("y-MM")


yy="7-05"


yy 07 string yy = DateTime.Now.ToString("yy-MM")


yy="07-05"


yyy或更多的y 1984 string yy = DateTime.Now.ToString("yyyy");


yy="2007"



M 5. string mon = DateTime.Parse("1984-05-09")ToString("yyyy-M")


mon = "1984-5"


MM 05. string mon = DateTime.Parse("1984-05-09")ToString("MM")


mon = "05"


MMM 如果是中文版的操作系统,则会输出:五月.


如果是英文操作系统,则输入月份前三个字母的简写:May string mon = DateTime.Parse("2006-07-01").ToString("MMM")


英文版操作系统:Jul


中文版操作系统:七月


MMMM或更多的M 如果是中文版的操作系统,则会输出:五月.


如果是英文操作系统,则输入月份的全写 string mon = DateTime.Parse("2006-07-01").ToString("MMM")


英文版操作系统:July


中文版操作系统:七月


日期或星期


d 9 string dd= DateTime.Parse("1984-05-09")ToString("d")


dd= "9"


dd 09 string dd= DateTime.Parse("1984-05-09")ToString("dd")


dd= "09"


ddd 如果是中文版的操作系统,则会输出星期,如星期三。.


如果是英文操作系统,则输出星期的简写:如


Wed string dd = DateTime.Parse("2006-07-01").ToString("ddd")


英文版操作系统:Wed


中文版操作系统:星期三


dddd或更多的d 如果是中文版的操作系统,则会输出星期,如星期三。.


如果是英文操作系统,则输出星期:如


Wednesday string dd = DateTime.Parse("2006-07-01").ToString("dddd")


英文版操作系统:Wednesday


中文版操作系统:星期三


小时


h 小时范围:1-12 string hh = DateTime.Now.ToString(“h”);


hh = 8


hh或更多的h 小时范围:1-12 string hh = DateTime.Now.ToString(“hh”);


hh = 08


H 小时范围:0-23 string hh = DateTime.Now.ToString(“yyyy-H”);


hh = 2006-8


HH或更多的H 小时范围:0-23 string hh = DateTime.Now.ToString(“yyyy-HH”);


hh = 2006-08


string hh = DateTime.Pare(“2006-7-4 18:00:00”).ToString(“yyyy-HH”);


hh = 2006-18


分钟


m 6 string mm = DateTime.Now.ToString("yyyy-MM-dd-m");


mm = “2006-07-01-6”;


mm或更多的m 06 string mm = DateTime.Now.ToString("yyyy-MM-dd-mm");


mm = “2006-07-01-06”;



s 6 string mm = DateTime.Now.ToString("yyyy-MM-dd-s");


mm = “2006-07-01-6”;


ss或更多的s 06 string mm = DateTime.Now.ToString("yyyy-MM-dd-ss");


mm = “2006-07-01-06”;


y代表年份,注意是小写的y,大写的Y并不代表年份。


2. M表示月份。


3. d表示日期,注意D并不代表什么。


4. h或H表示小时,h用的是12小时制,H用的是24小时制。


5. m表示分钟。


6. s表示秒。注意S并不代表什么。


举例:DateTime dt = DateTime.Now;


1. dt.ToString();//2005-11-5 13:21:25


2. dt.ToFileTime().ToString();//127756416859912816


3. dt.ToFileTimeUtc().ToString();//127756704859912816


4. dt.ToLocalTime().ToString();//2005-11-5 21:21:25


5. dt.ToLongDateString().ToString();//2005年11月5日


6. dt.ToLongTimeString().ToString();//13:21:25


7. dt.ToOADate().ToString();//38661.5565508218


8. dt.ToShortDateString().ToString();//2005-11-5


9. dt.ToShortTimeString().ToString();//13:21


10. dt.ToUniversalTime().ToString();//2005-11-5 5:21:25


11. dt.Year.ToString();//2005


12. dt.Date.ToString();//2005-11-5 0:00:00


13. dt.DayOfWeek.ToString();//Saturday


14. dt.DayOfYear.ToString();//309


15. dt.Hour.ToString();//13


16. dt.Millisecond.ToString();//441


17. dt.Minute.ToString();//30


18. dt.Month.ToString();//11


19. dt.Second.ToString();//28


20. dt.Ticks.ToString();//632667942284412864


21. dt.TimeOfDay.ToString();//13:30:28.4412864


22. dt.ToString();//2005-11-5 13:47:04


23. dt.AddYears(1).ToString();//2006-11-5 13:47:04


24. dt.AddDays(1.1).ToString();//2005-11-6 16:11:04


25. dt.AddHours(1.1).ToString();//2005-11-5 14:53:04


26. dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04


27. dt.AddMonths(1).ToString();//2005-12-5 13:47:04


28. dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05


29. dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10


30. dt.AddTicks(1000).ToString();//2005-11-5 13:47:04


31. dt.CompareTo(dt).ToString();//0


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


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


34. dt.Equals(dt).ToString();//True


35. dt.GetHashCode().ToString();//1474088234


36. dt.GetType().ToString();//System.DateTime


37. dt.GetTypeCode().ToString();//DateTime


38. dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25


39. dt.GetDateTimeFormats('t')[0].ToString();//14:06


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


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


42. dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05


43. dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05


44. dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日


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


46. dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06


47. dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06


48. dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT


49. string.Format("{0:d}",dt);//2005-11-5


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


51. string.Format("{0:f}",dt);//2005年11月5日 14:23


52. string.Format("{0:F}",dt);//2005年11月5日 14:23:23


53. string.Format("{0:g}",dt);//2005-11-5 14:23


54. string.Format("{0:G}",dt);//2005-11-5 14:23:23


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


56. string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT


57. string.Format("{0:s}",dt);//2005-11-05T14:23:23


58. string.Format("{0:t}",dt);//14:23


59. string.Format("{0:T}",dt);//14:23:23


60. string.Format("{0:u}",dt);//2005-11-05 14:23:23Z


61. string.Format("{0:U}",dt);//2005年11月5日 6:23:23


TimeSpan的方法:


Add:与另一个TimeSpan值相加。


Days:返回用天数计算的TimeSpan值。


Duration:获取TimeSpan的绝对值。


Hours:返回用小时计算的TimeSpan值


Milliseconds:返回用毫秒计算的TimeSpan值。


Minutes:返回用分钟计算的TimeSpan值。


Negate:返回当前实例的相反数。


Seconds:返回用秒计算的TimeSpan值。


Subtract:从中减去另一个TimeSpan值。


Ticks:返回TimeSpan值的tick数。


TotalDays:返回TimeSpan值表示的天数。


TotalHours:返回TimeSpan值表示的小时数。


TotalMilliseconds:返回TimeSpan值表示的毫秒数。


TotalMinutes:返回TimeSpan值表示的分钟数。


TotalSeconds:返回TimeSpan值表示的秒数。


FromDays 返回表示指定天数的TimeSpan,其中对天数的指定精确到最接近的毫秒。


FromHours 返回表示指定小时数的TimeSpan,其中对小时数的指定精确到最接近的毫秒。


FromMilliseconds 返回表示指定毫秒数的TimeSpan。


FromMinutes 返回表示指定分钟数的TimeSpan,其中对分钟数的指定精确到最接近的毫秒。


FromSeconds 返回表示指定秒数的TimeSpan,其中对秒数的指定精确到最接近的毫秒。


TimeSpan( 10, 20, 30, 40, 50 ) 10.20:30:40.0500000


TimeSpan( 1111, 2222, 3333, 4444, 5555 ) 1205.22:47:09.5550000


TimeSpan (Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的小时数、分钟数和秒数。


TimeSpan (Int32, Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的天数、小时数、分钟数和秒数。


TimeSpan (Int32, Int32, Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的天数、小时数、分钟数、秒数和毫秒数。


ASP.NET 中,两个时间相减,得到一个 TimeSpan 实例,TimeSpan 有一些属性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意没有 TotalTicks。


Tick 是一个计时周期,表示一百纳秒,即一千万分之一秒。


TotalDays 就是把 Ticks 换算成日数。


TotalHours 就是把 Ticks 换算成小时数。


TotalMinutes 就是把 Ticks 换算成分钟数。TotalSeconds 就是把 Ticks 换算成秒数。


负数:上面是较晚的日期减较早的日期,所以各属性值为正数,如果是较早的日期减较晚的日期,则属性值为负数。


例1:计算两个时间的差值:


string dateDiff = null;


           DateTime d1=DateTime.Now;


           DateTime d2=DateTime.Now.AddTicks(12998898989776);


           TimeSpan ts1 = new TimeSpan(d1.Ticks);


           TimeSpan ts2 = new TimeSpan(d2.Ticks);


           TimeSpan ts = ts1.Subtract(ts2).Duration();


           dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "时" + ts.Minutes.ToString()+"分"+ts.Seconds.ToString()+"秒";


           Console.WriteLine(dateDiff);


例2:FromDays用法


           TimeSpan t1 = TimeSpan.FromDays(0.3);


           Console.WriteLine(t1.Hours.ToString()); 输出结果:7


例3:如何确定程序的运行时间?


 public partial class Frm_Main : Form


   {

       public Frm_Main()


       {

           InitializeComponent();


       }


       private DateTime G_DateTime;//声明时间字段


       private void Frm_Main_Load(object sender, EventArgs e)


       {

           G_DateTime = DateTime.Now;//得到系统当前时间


           Thread P_th = new Thread(//创建线程


               () =>//使用Lambda表达式


               {

                   while (true)//无限循环


                   {

                       TimeSpan P_TimeSpan =//得到时间差


                           DateTime.Now - G_DateTime;


                       Invoke(//调用窗体线程


                           (MethodInvoker)(() =>//使用Lambda表达式


                           {//显示程序启动时间


tssLabel_Time.Text =string.Format("系统已经运行: {0}天{1}小时{2}分{3}秒",


                                   P_TimeSpan.Days, P_TimeSpan.Hours,


                                   P_TimeSpan.Minutes, P_TimeSpan.Seconds);


                           }));


                       Thread.Sleep(1000);//线程挂起1秒钟


                   }


               });


           P_th.IsBackground = true;//设置为后台线程


           P_th.Start();//开始执行线程


       }


}



例4:根据年份判断生肖


○1 GetSexagenaryYear方法


  ChineseLunisolarCalendar对象的GetSexagenaryYear方法用于计算与指定日期对象的甲子(60)年循环中的年。


语法:public virtual int GetSexagenaryYear(DateTime time)


   Time:datetime对象,表示要读取的时间信息。


   Int:返回整型数值,表示甲子循环中的一个从1-60的数字,它与date参数对应。


○2 GetTerrestrialBranch方法:


 ChineseLunisolarCalendar对象的GetTerrestrialBranch方法用于计算甲子(60年)循环中指定的地支。语法如下:


Public int GetTerrestrialBranch(int sexage)


参数说明:sexage :整型数值,方法接受一个从1-60的整形参数,表示甲子循环中的一年


返回值: int类型,表示一个从1-12的整数。


private void btn_Get_Click(object sender, EventArgs e)


  {创建日历对象


     System.Globalization.ChineseLunisolarCalendar


chinseCaleander = new System.Globalization.ChineseLunisolarCalendar();


     string TreeYear = "鼠牛虎兔龙蛇马羊猴鸡狗猪";//创建字符串对象


      int intYear = chinseCaleander.GetSexagenaryYear(DateTime.Now);//计算年信息


      string Tree=TreeYear.Substring(chinseCaleander.       GetTerrestrialBranch(intYear) - 1, 1); //输出生肖信息


      MessageBox.Show("今年是十二生肖" + Tree + "年","判断十二生肖", MessageBoxButtons.OK,MessageBoxIcon.Information);


       }















例5、判断是否是闰年?


用IsLeapYear。


bool b= DateTime.IsLeapYear(int.Parse(DateTime.Now.ToString(“yyyy”));


注:计算闰年的方法:指定的年份能被400整除为闰年。或者指定的年份可以整除4但不能整除100也为闰年。



例6、获取一个月中的天数:用DaysInMonth


 int count=DateTime.DaysInMonth(DateTime.Now.Year,DateTime.Now.Month);


DaysInMonth方法接受两个整数,分别是计算天数指定的年份和月份。


例7、日期时间格式处理,动态获得当前的时间


 private void Frm_Main_Load(object sender, EventArgs e)


       {

           System.Threading.Thread P_thread = //创建线程


               new System.Threading.Thread(


               () =>//使用lambda表达式


               {

                   while (true)//无限循环


                   {

                       this.Invoke(//操作窗体线程


                             (MethodInvoker)delegate()//使用匿名方法


                                    {

                                        this.Refresh();//刷新窗体


                                        Graphics P_Graphics = //创建绘图对象


                                            CreateGraphics();


                                        P_Graphics.DrawString("系统时间:" +//在窗体中绘出系统时间


                                            DateTime.Now.ToString(


                                            "yyyy年MM月dd日 HH时mm分ss秒"),


                                            new Font("宋体", 15),


                                            Brushes.Blue,


                                            new Point(10, 10));


                                    });


                       System.Threading.Thread.Sleep(1000);//线程挂起1秒钟


                   }


               });


           P_thread.IsBackground = true;//将线程设置为后台线程


           P_thread.Start();//线程开始执行


       }


 


目录
相关文章
|
3月前
|
开发框架 前端开发 .NET
C# Newtonsoft.Json.Formatting DateTime 日期格式化
C# Newtonsoft.Json.Formatting DateTime 日期格式化
51 0
|
6月前
|
C#
C#DateTime时间转换方法大全
C#DateTime时间转换方法大全
323 0
|
6月前
|
C#
53.c#:datetime类
53.c#:datetime类
148 1
|
11月前
|
C#
C# 对于“日期时间(DateTime)“的处理 时间差计算
C# 对于“日期时间(DateTime)“的处理 时间差计算
C# 中 double 型数值与 DateTime 的相互转换
C# 中 double 型数值与 DateTime 的相互转换
C#时间计算DateTime
C#时间计算DateTime
112 0
C#编程:用DateTime获取当前是星期几-5
C#编程:用DateTime获取当前是星期几-5
103 0
C# string格式的日期时间转为DateTime类型
C# string格式的日期时间转为DateTime类型
389 0
C#编程:用DateTime获取当前是星期几
C#编程:用DateTime获取当前是星期几
274 0