В .NET следующие операторы возвращают разные значения:
Response.Write(
TimeZoneInfo.ConvertTime(
DateTime.Parse("2010-07-01 5:30:00.000"),
TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"),
TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"))
);
// displays 7/1/2010 1:30:00 PM
.. и это...
Response.Write(
TimeZoneInfo.ConvertTime(
DateTime.Parse("2010-07-01 5:30:00.000"),
TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"),
TimeZoneInfo.FindSystemTimeZoneById("UTC"))
);
// displays 7/1/2010 12:30:00 PM
Почему это? Я думал, что UTC и GMT Standard Time эквивалентны.
Обновление
При дальнейшем тестировании я обнаружил, что следующие эквиваленты:
"UTC"
"Среднее время по Гринвичу"
"Стандартное время Марокко"
В то время как в течение летних месяцев различное:
"Стандартное время по умолчанию"
Возможно, мой вопрос должен быть, почему разные термины "время по Гринвичу" и "стандартное время по умолчанию"?
Окончательное обновление