Asp.net
如何將伺服器時間轉換為本地時間
我的時間有問題
我的伺服器在美國,我在丹麥(歐羅巴),我想讓我的網站顯示我當地時間的時間。我怎樣才能做到這一點?
我試試這個
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 + "'"); }