12小時制和24小時制獲取當天零點的問題探討
最近在寫定時服務的時候,要獲取當天的零點這個時間,但是是這樣獲取的
DateTime dt = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")+" 00:00:00");
Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss"));
在本地,測試,QA環(huán)境測試了均沒有問題,但是上了公網(wǎng)服務器以后,這個定時服務,就出問題了;寫了下日志,竟然發(fā)現(xiàn)獲取當天的零點,拼起來后獲取的時間是前一天的零點,原來服務器時間是12小時制的,本地環(huán)境都是24小時制的。
繼續(xù)深究,發(fā)現(xiàn)每天的00:00:00到00:59:59這段時間,在24小時制時間內(nèi)是當天的日期;但是在12小時制時間內(nèi),是前天的日期的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”。
原來,根據(jù)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小時的時間。
相關文章
ASP.NET DropDownListCheckBox使用示例(解決回發(fā)問題)
本文為大家介紹下ASP.NET DropDownListCheckBox的使用,這個是根據(jù)LigerUI改的,解決了回發(fā)問題,喜歡的朋友可以參考下2013-11-11
使用HttpClient增刪改查ASP.NET Web API服務
這篇文章介紹了使用HttpClient增刪改查ASP.NET Web API服務的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10
asp.net實現(xiàn)導出DataTable數(shù)據(jù)到Word或者Excel的方法
這篇文章主要介紹了asp.net實現(xiàn)導出DataTable數(shù)據(jù)到Word或者Excel的方法,涉及asp.net操作office文件的相關技巧,需要的朋友可以參考下2016-08-08

