У меня проблемы с преобразованием времени из Лондона (UTC / UTC + 1) в восточное время США (UTC-5 / UTC-4).
С кодом, работающим на лондонской машине во время фазы UTC + 1,
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));
Это будет правильно конвертировать 14:25:00 в 06:25:00 из UTC + 1 в UTC-7
Однако, если часовой пояс восточный, США
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time"));
Это будет неправильно преобразовать 14:25:00 в 08:25:00 из UTC + 1 в UTC-4
Кроме того,
TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time").SupportsDaylightSavingTime
возвращает false, в то время как
TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time").SupportsDaylightSavingTime
возвращает истину.
Это работает под .NET 3.5. Есть мысли?