2011-03-05 23 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

相关问题