C# 时间函数

[csharp]  view plain  copy
  1. 获得当前系统时间: DateTime dt = DateTime.Now;  
  2. Environment.TickCount可以得到“系统启动到现在”的毫秒值  
  3. DateTime now = DateTime.Now;  
  4. Console.WriteLine(now.ToString("yyyy-MM-dd"));  //按yyyy-MM-dd格式输出s  
  5. Console.WriteLine(dt.ToString());    //  26/11/2009 AM 11:21:30  
  6. Console.WriteLine(dt.ToFileTime().ToString());   //   129036792908014024  
  7. // Converts the value of the current System.DateTime object to a Windows file time  
  8. Console.WriteLine(dt.ToFileTimeUtc().ToString());  //     129036792908014024  
  9. // Converts the value of the current System.DateTime object to a Windows file time  
  10. Console.WriteLine(dt.ToLocalTime().ToString());   //       26/11/2009 AM 11:21:30  
  11. // Converts the value of the current System.DateTime object to local time.  
  12. Console.WriteLine(dt.ToLongDateString().ToString());   //      2009年11月26日  
  13. Console.WriteLine(dt.ToLongTimeString().ToString());  //      AM 11:21:30  
  14. Console.WriteLine(dt.ToOADate().ToString());   //      40143.4732731597  
  15. Console.WriteLine(dt.ToShortDateString().ToString());   //     26/11/2009  
  16. Console.WriteLine(dt.ToShortTimeString().ToString());   //     AM 11:21  
  17. Console.WriteLine(dt.ToUniversalTime().ToString());   //       26/11/2009 AM 3:21:30  
  18. Console.WriteLine(dt.Year.ToString());   //        2009  
  19. Console.WriteLine(dt.Date.ToString());   //        26/11/2009 AM 12:00:00  
  20. Console.WriteLine(dt.DayOfWeek.ToString());  //       Thursday  
  21. Console.WriteLine(dt.DayOfYear.ToString());   //       330  
  22. Console.WriteLine(dt.Hour.ToString());       //        11  
  23. Console.WriteLine(dt.Millisecond.ToString());   //     801        (毫秒)  
  24. Console.WriteLine(dt.Minute.ToString());   //      21  
  25. Console.WriteLine(dt.Month.ToString());   //       11  
  26. Console.WriteLine(dt.Second.ToString());   //      30  
  27. Console.WriteLine(dt.Ticks.ToString());   //       633948312908014024  
  28.   
  29. Console.WriteLine(dt.TimeOfDay.ToString());   //       12:29:51.5181524  
  30. // Gets the time of day for this instance.  
  31. // 返回 A System.TimeSpan that represents the fraction of the day that has elapsed since midnight.  
  32. Console.WriteLine(dt.ToString());     //     26/11/2009 PM 12:29:51  
  33. Console.WriteLine(dt.AddYears(1).ToString());    //         26/11/2010 PM 12:29:51  
  34. Console.WriteLine(dt.AddDays(1.1).ToString());    //        27/11/2009 PM 2:53:51  
  35. Console.WriteLine(dt.AddHours(1.1).ToString());    //       26/11/2009 PM 1:35:51  
  36. Console.WriteLine(dt.AddMilliseconds(1.1).ToString());    //26/11/2009 PM 12:29:51  
  37. Console.WriteLine(dt.AddMonths(1).ToString());    //        26/12/2009 PM 12:29:51  
  38. Console.WriteLine(dt.AddSeconds(1.1).ToString());    //     26/11/2009 PM 12:29:52  
  39. Console.WriteLine(dt.AddMinutes(1.1).ToString());    //     26/11/2009 PM 12:30:57  
  40. Console.WriteLine(dt.AddTicks(1000).ToString());    //      26/11/2009 PM 12:29:51  
  41. Console.WriteLine(dt.CompareTo(dt).ToString());    //       0  
  42. Console.WriteLine(dt.Add(new TimeSpan(1,0,0,0)).ToString());    // 加上一个时间段  
  43. (注:  
  44. System.TimeSpan为一个时间段,构造函数如下  
  45. public TimeSpan(long ticks); // ticks: A time period expressed in 100-nanosecond units.  
  46.                            //nanosecond:十亿分之一秒   new TimeSpan(10,000,000)        为一秒  
  47. public TimeSpan(int hours, int minutes, int seconds);  
  48. public TimeSpan(int days, int hours, int minutes, int seconds);  
  49. public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds);  
  50. )  
  51. Console.WriteLine(dt.Equals("2005-11-6 16:11:04").ToString());     //        False  
  52. Console.WriteLine(dt.Equals(dt).ToString());    //      True  
  53. Console.WriteLine(dt.GetHashCode().ToString());    //       1103291775  
  54. Console.WriteLine(dt.GetType().ToString());    //       System.DateTime  
  55. Console.WriteLine(dt.GetTypeCode().ToString());    //       DateTime  
  56.     
  57. long Start = Environment.TickCount;   //单位是毫秒  
  58. long End = Environment.TickCount;  
  59. Console.WriteLine("Start is : "+Start);  
  60. Console.WriteLine("End is : "+End);  
  61. Console.WriteLine("The Time is {0}",End-Start);  
  62. Console.WriteLine(dt.GetDateTimeFormats('s')[0].ToString());    //2009-11-26T13:29:06  
  63. Console.WriteLine(dt.GetDateTimeFormats('t')[0].ToString());    //PM 1:29  
  64. Console.WriteLine(dt.GetDateTimeFormats('y')[0].ToString());    //2009年11月  
  65. Console.WriteLine(dt.GetDateTimeFormats('D')[0].ToString());    //2009年11月26日  
  66. Console.WriteLine(dt.GetDateTimeFormats('D')[1].ToString());    //星期四, 26 十一月, 2009  
  67. Console.WriteLine(dt.GetDateTimeFormats('D')[2].ToString());    //26 十一月, 2009  
  68. Console.WriteLine(dt.GetDateTimeFormats('D')[3].ToString());    //星期四 2009 11 26  
  69. Console.WriteLine(dt.GetDateTimeFormats('M')[0].ToString());    //26 十一月  
  70. Console.WriteLine(dt.GetDateTimeFormats('f')[0].ToString());    //2009年11月26日 PM 1:29  
  71. Console.WriteLine(dt.GetDateTimeFormats('g')[0].ToString());    //26/11/2009 PM 1:29  
  72. Console.WriteLine(dt.GetDateTimeFormats('r')[0].ToString());    //Thu, 26 Nov 2009 13:29:06 GMT  
  73. (注:  
  74. 常用的日期时间格式:  
  75. 格式 说明      输出格式   
  76. d 精简日期格式 MM/dd/yyyy   
  77. D 详细日期格式 dddd, MMMM dd, yyyy   
  78. f  完整格式    (long date + short time) dddd, MMMM dd, yyyy HH:mm   
  79. F 完整日期时间格式 (long date + long time) dddd, MMMM dd, yyyy HH:mm:ss   
  80. g 一般格式 (short date + short time) MM/dd/yyyy HH:mm   
  81. G 一般格式 (short date + long time) MM/dd/yyyy HH:mm:ss   
  82. m,M 月日格式 MMMM dd   
  83. s 适中日期时间格式 yyyy-MM-dd HH:mm:ss   
  84. t 精简时间格式 HH:mm   
  85. T 详细时间格式 HH:mm:ss  
  86. )  
  87.   
  88. Console.WriteLine(string.Format("{0:d}", dt));    //28/12/2009  
  89. Console.WriteLine(string.Format("{0:D}", dt));    //2009年12月28日  
  90. Console.WriteLine(string.Format("{0:f}", dt));    //2009年12月28日 AM 10:29  
  91. Console.WriteLine(string.Format("{0:F}", dt));    //2009年12月28日 AM 10:29:18  
  92. Console.WriteLine(string.Format("{0:g}", dt));    //28/12/2009 AM 10:29  
  93. Console.WriteLine(string.Format("{0:G}", dt));    //28/12/2009 AM 10:29:18  
  94. Console.WriteLine(string.Format("{0:M}", dt));    //28 十二月  
  95. Console.WriteLine(string.Format("{0:R}", dt));    //Mon, 28 Dec 2009 10:29:18 GMT  
  96. Console.WriteLine(string.Format("{0:s}", dt));    //2009-12-28T10:29:18  
  97. Console.WriteLine(string.Format("{0:t}", dt));    //AM 10:29  
  98. Console.WriteLine(string.Format("{0:T}", dt));    //AM 10:29:18  
  99. Console.WriteLine(string.Format("{0:u}", dt));    //2009-12-28 10:29:18Z  
  100. Console.WriteLine(string.Format("{0:U}", dt));    //2009年12月28日 AM 2:29:18  
  101. Console.WriteLine(string.Format("{0:Y}", dt));    //2009年12月  
  102. Console.WriteLine(string.Format("{0}", dt));    //28/12/2009 AM 10:29:18  
  103. Console.WriteLine(string.Format("{0:yyyyMMddHHmmssffff}", dt));    //200912281029182047  
  104.   
  105. 计算2个日期之间的天数差  
  106. DateTime dt1 = Convert.ToDateTime("2007-8-1");      
  107. DateTime dt2 = Convert.ToDateTime("2007-8-15");     
  108. TimeSpan span = dt2.Subtract(dt1);                
  109. int dayDiff = span.Days ;         
  110.   
  111. 计算某年某月的天数  
  112. int days = DateTime.DaysInMonth(2009, 8);         
  113. days = 31;                                        
  114.   
  115. 给日期增加一天、减少一天  
  116. DateTime dt =DateTime.Now;  
  117. dt.AddDays(1); //增加一天 dt本身并不改变  
  118. dt.AddDays(-1);//减少一天 dt本身并不改变  


转自:http://www.cnblogs.com/computer-lzy/archive/2012/07/20/2600506.html

补充一些功能

 获取时间戳.

DateTime time = DateTime.Now;//获取本机时间
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));//获取和本机时间相同的类型的本地时间(否则可能出现由于时间类型不同的偏差,如果都是构造函数生成的,机没必要这么做了)
string ms = ((long)(time - startTime).TotalSeconds).ToString() + "000";//TimeSpan 时间差  获取 之间差的 秒数,就是时间戳
 字符串转变成时间

方法一:Convert.ToDateTime(string)

string格式有要求,必须是yyyy-MM-dd hh:mm:ss (数据库datetime行数据也可以)

================================================

方法二:

DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();

dtFormat.ShortDatePattern = "yyyy/MM/dd";

DateTime  dt = Convert.ToDateTime("2011/05/26", dtFormat);






猜你喜欢

转载自blog.csdn.net/u010673842/article/details/79113029