117

Я живу в Вене. Мой недавно перезагруженный Android-устройство только что спросил меня о моем часовом поясе, и у меня есть несколько доступных вариантов:

Amsterdam GMT+01:00
Belgrade GMT+01:00
Brussels GMT+01:00
Sarajevo GMT+01:00

Очевидно, Windows также предлагает разные часовые пояса GMT+01:00, так что это не является чем-то конкретным для Android:

Central Europe Standard Time (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
Central European Standard Time (GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb
Romance Standard Time (GMT+01:00) Brussels, Copenhagen, Madrid, Paris
W. Europe Standard Time (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna

Какая разница? В частности, в чем разница между "стандартным романским временем" и "стандартным временем Европы"? Согласно Википедии, они должны быть одинаковыми. И, насколько я помню, Париж и Берлин всегда были в одном часовом поясе ...

4 ответа4

140

Если вы посмотрите только на настоящее, многие часовые пояса будут выглядеть избыточными. Однако, если вы посмотрите на прошлое, вы найдете много различий. В качестве примера давайте рассмотрим исходный код часовых поясов Европы / Бусингена (фактически ссылка на Европу / Цюрих) и Европы / Берлина. Büsingen - это немецкий эксклав, полностью закрытый на территории Швейцарии.

Европа / Цюрих:

# Rule  NAME    FROM    TO  TYPE    IN  ON  AT  SAVE    LETTER/S
Rule    Swiss   1941    1942    -   May Mon>=1  1:00    1:00    S
Rule    Swiss   1941    1942    -   Oct Mon>=1  2:00    0   -
# Zone  NAME        GMTOFF  RULES   FORMAT  [UNTIL]
Zone    Europe/Zurich   0:34:08 -   LMT 1853 Jul 16 # See above comment.
            0:29:46 -   BMT 1894 Jun    # Bern Mean Time
            1:00    Swiss   CE%sT   1981
            1:00    EU  CE%sT

Европа / Берлин:

# Rule  NAME    FROM    TO  TYPE    IN  ON  AT  SAVE    LETTER/S
Rule    Germany 1946    only    -   Apr 14  2:00s   1:00    S
Rule    Germany 1946    only    -   Oct  7  2:00s   0   -
Rule    Germany 1947    1949    -   Oct Sun>=1  2:00s   0   -
# http://www.ptb.de/de/org/4/44/441/salt.htm says the following transition
# occurred at 3:00 MEZ, not the 2:00 MEZ given in Shanks & Pottenger.
# Go with the PTB.
Rule    Germany 1947    only    -   Apr  6  3:00s   1:00    S
Rule    Germany 1947    only    -   May 11  2:00s   2:00    M
Rule    Germany 1947    only    -   Jun 29  3:00    1:00    S
Rule    Germany 1948    only    -   Apr 18  2:00s   1:00    S
Rule    Germany 1949    only    -   Apr 10  2:00s   1:00    S

Rule SovietZone 1945    only    -   May 24  2:00    2:00    M # Midsummer
Rule SovietZone 1945    only    -   Sep 24  3:00    1:00    S
Rule SovietZone 1945    only    -   Nov 18  2:00s   0   -

# Zone  NAME        GMTOFF  RULES   FORMAT  [UNTIL]
Zone    Europe/Berlin   0:53:28 -   LMT 1893 Apr
            1:00    C-Eur   CE%sT   1945 May 24  2:00
            1:00 SovietZone CE%sT   1946
            1:00    Germany CE%sT   1980
            1:00    EU  CE%sT

Прежде всего, обратите внимание, как последняя строка идентична: обе используют сегодня центральноевропейское (летнее) время. Все до этого сильно меняется. Германия приняла CE (S) T в 1980 году, а Швейцария сделала это год спустя в 1981 году.

Из-за того, что как Нидерланды, так и Бельгия пострадали от Первой и Второй мировых войн и так далее, их история еще длиннее, поэтому я не буду их здесь включать. Вы можете скачать данные и убедиться в этом сами. Это очень интересное чтение, потому что оно содержит обширные исследования истории хронометража во многих штатах.

78

Краткий ответ: вы не выбираете «Амстердам GMT+01: 00»; вы выбираете "Амстердам (который в настоящее время GMT+01: 00)".

Отображение смещения по абсолютному времени является просто полезным индикатором того, что ваш выбор практически означает сегодня, но он не определяет выбор, который вы делаете.

Если вы выберете "Амстердам", а часовой пояс Амстердама позже изменится отдельно на Брюссельский, ваш компьютер будет отслеживать Амстердам специально.

12

Решение, какие зоны иметь в базе данных часовых поясов, является компромиссом между:

  • поддержание разумного количества зон и общего размера БД
  • предоставление точных конверсий для исторических временных меток
  • минимизация необходимости реконфигурации перед лицом будущих изменений в определении гражданского времени.

"База данных TZ" (используемая почти каждым поставщиком ОС, кроме Microsoft) определяет часовой пояс как «национальный регион, в котором все локальные часы согласованы с 1970 года».

Таким образом, в целом (за некоторыми историческими странами, которые разделяются) (за некоторыми исключениями) места в разных странах получат разные названия часовых поясов, даже если они имели одинаковое местное время с 1970 года.

Каждая зона обычно определяется по своему региону и главному городу (есть некоторые исключения). Данные до 1970 года пытаются быть точными для основного города в зоне, но зона будет разделена только при наличии разницы после 1970 года.

Некоторые платформы могут скрывать некоторые второстепенные зоны по умолчанию, но здесь это не так. В вашем списке отсутствуют основные зоны, такие как "Вена" и "Берлин"

Исходя из вашего списка, мне интересно, если это вещь локализации. Возможно, они предполагают, что люди в немецкоязычных странах будут использовать немецкую сборку ОС.

MS делает свое дело на часовых поясах. Я не знаю, каковы их критерии для решения, находится ли что-то в той же зоне или нет, но я ожидаю, что это что-то вроде «мест, которые имели разное местное время с тех пор, как Windows начала поддерживать часовые пояса».

4

Что еще нужно иметь в виду, это летнее время.

В одном городе может быть включено летнее время, тогда как в другом городе с такой же долготой (и, следовательно, с тем же часовым поясом), но ближе к экватору, летнее время не будет включено.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .