Asp.net

如何將伺服器時間轉換為本地時間

  • February 25, 2016

我的時間有問題

我的伺服器在美國,我在丹麥(歐羅巴),我想讓我的網站顯示我當地時間的時間。我怎樣才能做到這一點?

我試試這個

Datetime localtime = DateTimeOffset.Now.ToOffset(new TimeSpan(1,0,0)).DateTime;

它有效,但它只在我處於 GMT+1 / UTC+1 時有效,而不是在我在 GMT+2 / UTC+2 時有效。有沒有另一種方法——一種更簡單的方法?

您應該這樣做的唯一方法如下:

string zoneId = "Central European Standard Time";
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(zoneId);
DateTime result = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow,tzi);
Console.WriteLine("Time is " + result + " in Denmark");

使用 TimeZoneInfo 類是 .Net 中唯一可靠的方法來轉換到/從不同的時區並獲得正確的 DST 轉換。

TimeZoneInfo.ConvertTimeToUtc(dtLocal,tzi)是從本地時間到UTC時間的反向轉換。


對於 TimeZone Id 字元串,您可以在此處執行程式碼…

foreach( var tz in TimeZoneInfo.GetSystemTimeZones() )
{
   Console.WriteLine(tz.DisplayName + " is Id=','" + tz.Id + "'");
}

引用自:https://stackoverflow.com/questions/319367