2012-07-08 110 views
2

我是新的MVC3和C#也。我將用C#創建一個MVC3測試博客網站。用戶可以寫郵件,所以我需要存儲用戶發佈的日期時間,並希望顯示該日期時間每個其他用戶有自己的當地時間。對於這種情況,大家都認爲最好在GMT中存儲日期時間。在MVC3(C#)將GMT的日期時間轉換爲用戶本地時間和本地時間到GMT日期時間

我不知道如何獲得用戶本地日期時間並將其轉換爲格林尼治標準時間和商店。 我不知道如何轉換並在每個用戶本地日期時間顯示存儲的日期時間。

請幫幫我。請

回答

2

我只能在一點上不同意COLD TOLD。如果您使用DateTime.Now,則會得到運行應用程序服務器的機器的日期&。雖然這沒關係,但在存儲時,您還需要將時區與它一起存儲。否則,在轉換時,您不知道您要從哪個時區轉換而來。如果您將其硬編碼到您的應用程序中,然後將其移至不同時區的數據中心服務器,則必須更改該應用程序設置。另一方面,如果您始終使用DateTime.UtcNow存儲日期&時間,那麼您只需要在數據庫中存儲1個值。當需要將其轉換爲時區語言環境時,您不必點擊數據庫以查明信息最初計算的時區 - 它始終是UTC/GMT。

var destinationTimeZone = TimeZoneInfo.FindSystemTimeZoneById(
    "US Mountain Standard Time"); 

utc = DateTime.UtcNow; 
mst = TimeZoneInfo.ConvertTimeFromUtc(utcTime, destinationTimeZone); 

Console.WriteLine("UTC: " + utc.ToString("yyyy-MM-dd HH-mm-ss")); 
Console.WriteLine("MST: " + mst.ToString("yyyy-MM-dd HH-mm-ss")); 
相關問題