Как получить время в другом месте программно в .NET? - PullRequest
4 голосов
/ 06 марта 2011

Как я могу получить время в другом месте UTC , или, по крайней мере, какое значение времени UTC установлено в компьютере , чтобы я мог увеличить / уменьшить текущее время и получить то, чтоЯ хочу?

Моя конкретная проблема:

Я нахожусь в определенном месте, и я хочу знать, сколько времени в UK .

1 Ответ

11 голосов
/ 06 марта 2011

Я наконец нашел ответ. Эта статья очень хорошо объясняет TimeZoneInfo и TimeZone, и в ней есть несколько примеров преобразования между временами разных часовых поясов.

Все, что вам нужно знать, это 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

Чтобы получить список всех идентификаторов, вы можете:

  • Проверка на HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
  • Запрос TimeZoneInfo.GetSystemTimeZones();
...