我只能在一點上不同意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"));