Разница во времени Windows GetTimeZoneInformation не соответствует веб-сайту ISO или Google

Мой компьютер - Windows 7 64-битная; Я на восточном побережье США (восточное время); апплет "Дата и время" - достигается путем щелчка правой кнопкой мыши по часам панели задач и выбора "Настроить дату / время" - помечает мой часовой пояс "(UTC-05:00) по восточному времени (США и Канада)" и сообщает мне, что летнее время заканчивается в ноябре. (Для тех, кто придет позже, это было написано в апреле, после того, как мы проделали "весенний переход", чтобы перейти на летнее время.)

При вызове API-интерфейсов Windows GetTimeZoneInformation или GetDynamicTimeZoneInformation (последний доступен только в Vista или более поздней версии) возвращается значение смещения 300 минут 5 часов. (Значение смещения не является отрицательным, потому что документ для этого значения говорит "UTC = местное время + смещение".)

Но если я захожу на веб-сайт ISO, который утверждает, что показывает время на моем компьютере, он отображает время, которое соответствует часам, но заканчивается -0400. (Я пытался скопировать / вставить его, но это сложно, так как он меняется каждую секунду.) Ввод "current time utc" в Google показывает время, которое также на 4 (а не 5) часов опережает время часов.

Смущает меня немного больше - у меня есть экземпляр EC2 под управлением Windows Server 2008, который кто-то другой настроил и сказал, что он был преднамеренно установлен на GMT, чтобы время, записанное на основе часов сервера, не имело скачков в 1 час, вызванных переходом на летнее время.,

Когда я подключаюсь к этому серверу, он показывает время на 5 часов впереди того, что я вижу здесь. Но его апплет "Дата / Время" на панели управления (отличается от Windows 7) показывает, что текущий часовой пояс "среднее время по Гринвичу" (Дублин, Эдинбург, Лиссабон, Лондон) "но есть и часовой пояс"(GMT) Всемирное координированное время "- UTC - и если я изменю часовой пояс на это (что-то, что я считаю правильным), смещение составляет 4 часа.

В диалоговом окне "Настройки часового пояса" в Windows 7 (доступ к которому можно получить, нажав кнопку "Изменить часовой пояс..." в апплете "Дата и время", о котором говорилось выше), часовые пояса помечены как всемирное координированное время (UTC) (4 часа отныне) и "(UTC) Дублин, Эдинбург, Лиссабон, Лондон" (5 часов).

Кроме того, чтобы думать, что у экземпляра EC2 был установлен неправильный часовой пояс - его следовало установить на UTC, а не на лондонское время для достижения цели, указанной выше, - я не продвинулся в понимании этого. Windows 7 в США говорит, что я 5 часов от UTC; все остальное (включая Windows 2008, установленную на время UTC) говорит 4 часа.

Итак, что должна делать процедура, чтобы создать временную метку в стиле ISO с конечным смещением часового пояса? Windows API говорит мне, что это должно быть -0500, но все остальное говорит, что это должно быть -0400. Помогите!!

1 ответ

В восточное дневное время смещение действительно UTC-04:00. Список отображаемых имен для часовых поясов в Windows не изменяется, чтобы отразить это. Он просто показывает стандартное смещение, которое для восточного стандартного времени - UTC-05:00.

Вы правы, что сервер должен быть установлен на "(UTC) Всемирное координированное время", а не на настройку "UTC) Дублин, Эдинбург, Лиссабон, Лондон". Параметр "Всемирное координированное время" постоянно фиксируется в UTC, где у другого есть смещение дневного света, которое является UTC + 01: 00 в течение британского летнего времени. Опять же, метка показывает только стандартное смещение, которое является UTC + 00: 00, которое на дисплее сокращено до "(UTC)".

Единственный вопрос программирования, который вы задали:

Итак, что должна делать процедура, чтобы создать временную метку в стиле ISO с конечным смещением часового пояса?

Это сильно зависит от того, какой язык вы используете. Вы упомянули Win32 API для получения информации о текущем часовом поясе системы, но редко бы вызывали их напрямую. Ты пишешь на С? C++? C#? VB? Джава? Что-то другое? Пожалуйста, ответьте, и я могу ответить на этот вопрос.

Другие вопросы по тегам