Различие между UTC и стандартное время GMT в.NET

В.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 эквивалентен.


Обновление

После дальнейшего тестирования я нахожу, что следующее, кажется, эквивалентно:

"UTC"

"Среднее время по Гринвичу"

"Время стандарта Марокко"

Принимая во внимание, что, следующее отличается в течение летних месяцев:

"Стандартное время GMT"

Возможно, мой вопрос должен быть, почему "Среднее время по Гринвичу" и "Стандартное Время GMT", отличающееся?

Обновление конца

47
задан Mark Hurd 8 June 2011 в 14:52
поделиться

3 ответа

GMT не настраивает на Летнее время (DST). Вы можете услышать это из уст лошади на этом веб-сайте .

Добавьте эту строку кода, чтобы увидеть источник проблемы:

  Console.WriteLine(TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time").SupportsDaylightSavingTime);

Вывод: True.

Это не проблема .NET, это сбой в Windows. Ключ реестра, который использует TimeZoneInfo, - это HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Time Zones \ GMT Standard Time. Вам лучше придерживаться UTC.

35
ответ дан 26 November 2019 в 19:41
поделиться

Разница заключается в следующем:

  • Среднее время по Гринвичу (GMT) - это термин, первоначально относящийся к среднему солнечное время в Королевской обсерватории в Гринвиче, Лондон. тогда как
  • Всемирное координированное время (UTC) (франц: Temps Universel Coordonné) - это стандарт времени, основанный на на международном атомном времени (TAI) с добавлением високосных секунд через нерегулярные с добавлением високосных секунд через нерегулярные промежутки времени для компенсации Замедление вращения Земли
  • Дневное световое время (DST) с другой стороны, это перевод часов до и для смены сезонов, чтобы максимально использовать дневного света.

    "Оно соблюдается во многих странах, но не во всех". Оно может меняться, так как прошлым летом некоторые страны, например Пакистан, решили перевести часы на месяц позже, чем обычно.

  • World Time Zones - хороший ресурс для получения актуальной информации о времени по всему миру.

Надеюсь, это поможет

13
ответ дан 26 November 2019 в 19:41
поделиться

Вот обсуждение Согласованных универсальных часовых поясов . Кажется, что UTC обычно используется, когда требуется высокая точность временных рамок. Greenwhich Meantime довольно близок и используется туда и обратно с UTC.

Надеюсь, это кому-то поможет.

0
ответ дан 26 November 2019 в 19:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: