如何在.NET中以编程方式在另一个位置获取时间?

Osc*_*ros 4 .net c# datetime date

如何获取另一个UTC位置的时间,或者至少在计算机中设置的UTC时间值,以便我可以增加/减少当前时间并获得我想要的内容?

我的具体问题是:

我在一个特定的位置,我想知道在英国几点钟.

Osc*_*ros 11

我终于找到了答案.本文介绍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);
Run Code Online (Sandbox Code Playgroud)

版画

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();