Я наконец нашел ответ. Эта статья очень хорошо объясняет 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();