2011-03-05 65 views
4

如何獲取另一個UTC位置的時間或至少在計算機中設置了什麼UTC時間值,以便我可以增加/減少當前時間並獲得我想要的?如何在.NET中以編程方式獲取其他位置的時間?

我的具體問題是:

我在一個特定的位置,我想知道的是什麼時候在英國

+1

可能檢查出[從另一個時區的日期時間檢索]另一篇文章(http://stackoverflow.com/questions/246498/creating-a-datetime-in- a-specific-time-zone-in-c-fx-3-5) – 2011-03-05 22:55:55

+0

@Brad讓我看看它... – 2011-03-05 22:59:04

回答

10

我終於找到了答案。 This article很好地解釋了TimeZoneInfoTimeZone,它有一些在不同時區之間轉換的例子。

所有你需要知道的是時間區的ID要轉換到。

一個例子(從網站拍攝):

DateTimeOffset nowDateTime = DateTimeOffset.Now; 
DateTimeOffset newDateTime = TimeZoneInfo.ConvertTime(
    nowDateTime, 
    TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time")); 

Console.WriteLine("Now: {0}", nowDateTime); 
Console.WriteLine("Now in Hawaii: {0}", newDateTime); 

打印

Now: 3/5/2011 6:30:48 PM -08:00
Now in Hawaii: 3/5/2011 4:30:48 PM -10:00

要獲得所有的ID的列表,您可以:

  • 檢查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
  • 查詢TimeZoneInfo.GetSystemTimeZones();
+0

一個有效的列表似乎在這裏:http://stackoverflow.com/questions/ 14149346 /什麼值應該我傳入時區info-findsystemtimezonebyidstring#24460750與'GMT標準時間'顯然是英國的一個(http://stackoverflow.com/questions/4034923/how-to-represent -the電流-UK-時間#4035002)。 – SharpC 2016-01-24 12:48:15

相關問題