Файлы данных IANA (Управление по присвоению номеров в Интернете) и данные с www.timeanddate.com

Как оценить местное время, используя файлы данных IANA (Internet Assigned Numbers Authority)?

На этом сайте я нахожу следующие данные: https://www.timeanddate.com/time/zone/uk/london

2015  Sun, 29 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 25 Oct, 02:00BST → GMT-1 hour (DST end)UTC
2016  Sun, 27 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 30 Oct, 02:00BST → GMT-1 hour (DST end)UTC
2017  Sun, 26 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 29 Oct, 02:00BST → GMT-1 hour (DST end)UTC
2018  Sun, 25 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 28 Oct, 02:00BST → GMT-1 hour (DST end)UTC
2019  Sun, 31 Mar, 01:00GMT → BST+1 hour (DST start)UTC+1h
      Sun, 27 Oct, 02:00BST → GMT-1 hour (DST end)UTC

Как видите, правило изменения времени в Европе и Лондоне меняется каждый год: правило 2018 года применяется с 25 марта по 2019 года с 31 марта и т. Д.

Но я не могу найти эту информацию о распределении данных IANA. https://www.iana.org/time-zones

Из tzdata2016h.tar.gz, извлеченный файл europe:

# Zone  NAME        GMTOFF  RULES   FORMAT  [UNTIL]
Zone    Europe/London   -0:01:15 -  LMT 1847 Dec  1  0:00s
             0:00   GB-Eire %s  1968 Oct 27
             1:00   -   BST 1971 Oct 31  2:00u
             0:00   GB-Eire %s  1996
             0:00   EU  GMT/BST

Может быть, я не понимаю, как использовать данные IANA? Как извлечь файл данных IANA?

1 ответ

Решение

Вы сначала посмотрите на Zone запись для Europe/London:

# Zone  NAME             GMTOFF RULES   FORMAT  [UNTIL]
Zone    Europe/London   -0:01:15 -      LMT     1847 Dec  1  0:00s
                         0:00   GB-Eire %s      1968 Oct 27
                         1:00   -       BST     1971 Oct 31  2:00u
                         0:00   GB-Eire %s      1996
                         0:00   EU      GMT/BST

Каждый ряд заканчивается [UNTIL] дата, кроме последней. Когда нет [UNTIL] дата, бесконечно далёкая в будущем, подразумевается. Таким образом, Лондон в настоящее время руководствуется последней строкой в ​​таблице выше, в которой говорится, что смещение UTC равно 0:00, а правила перехода на летнее время регулируются Rule EUи используемые аббревиатуры GMT за "стандартное" время и BST для летнего времени.

Теперь иди найти Rule EU:

# Rule      NAME    FROM    TO      TYPE    IN      ON       AT     SAVE    LETTER/S
Rule        EU      1977    1980    -       Apr     Sun>=1   1:00u  1:00    S
Rule        EU      1977    only    -       Sep     lastSun  1:00u  0       -
Rule        EU      1978    only    -       Oct      1       1:00u  0       -
Rule        EU      1979    1995    -       Sep     lastSun  1:00u  0       -
Rule        EU      1981    max     -       Mar     lastSun  1:00u  1:00    S
Rule        EU      1996    max     -       Oct     lastSun  1:00u  0       -

Вы ищете правила, которые в настоящее время действуют. На данный момент их два, последние два ряда.

Во втором и последнем ряду говорится, что для каждого года, начиная с 1981 года, в последнее воскресенье марта в 01:00 UTC к смещению UTC добавляется 1:00 (определяется Zone). Последний столбец, который содержит S не используется в этом примере. Но если аббревиатура указана в Zone содержал %sто эта буква будет заменена на %s,

В последнем ряду говорится, что для каждого года, начиная с 1996 года, в последнее воскресенье октября в 01:00 UTC к смещению UTC добавляется 0:00 (определяется Zone).

Matt Johnson добавляет в комментариях ниже:

Вы также можете быть заинтересованы в http://iana.org/time-zones/repository/tz-how-to.html

Я подумал, что это такой важный комментарий, что он должен быть в ответе для большей наглядности. Спасибо, Мэтт!

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