程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> 12小時制和24小時制獲取當天零點的問題探討

12小時制和24小時制獲取當天零點的問題探討

編輯:ASP.NET基礎

最近在寫定時服務的時候,要獲取當天的零點這個時間,但是是這樣獲取的

復制代碼 代碼如下:
DateTime dt = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")+" 00:00:00");
Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss"));

在本地,測試,QA環境測試了均沒有問題,但是上了公網服務器以後,這個定時服務,就出問題了;寫了下日志,竟然發現獲取當天的零點,拼起來後獲取的時間是前一天的零點,原來服務器時間是12小時制的,本地環境都是24小時制的。

  繼續深究,發現每天的00:00:00到00:59:59這段時間,在24小時制時間內是當天的日期;但是在12小時制時間內,是前天的日期的12:00:00到12:59:59。舉個例子,比如說按照24小時制時間,今天的“2013-09-26 00:00:00”這個時間,在12小時制服務器中,獲取的話就是“2013-09-25 12:00:00”,DateTime.Now.ToString("yyyy-MM-dd")這個方法獲得的日期就是“2013-09-25”,那麼dt獲取就是“2013-09-25 12:00:00”。

原來,根據C#中獲取時間的小時制的不同,可以這樣獲取

復制代碼 代碼如下:
//24小時制:
DateTime dt = DateTime.Now;
string dt24 = dt.ToString("yyyy-MM-dd HH:mm:ss");
//12小時制:
DateTime dt = DateTime.Now;
string dt12 = dt.ToString("yyyy-MM-dd hh:mm:ss");
//是由H的大小寫決定

  不管服務器的時間制是12小時還是24小時,大寫H獲取的就是24小時的時間,小寫h獲取的就是12小時的時間。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved