База данных Tz - Tz database

База данных tz делит мир на регионы, где с 1970 года все местные часы были одинаковыми. На этой карте, взятой из базы данных издания 2017a, показаны все регионы за пределами Антарктиды.[1]

В база данных tz это совместный сборник информации о мире часовые пояса, в первую очередь предназначенные для использования с компьютерными программами и операционными системами.[2] Пол Эггерт - текущий редактор и сопровождающий,[3] при организационной поддержке ICANN.[4] База данных tz также известна как tzdata, то база данных zoneinfo или База данных часовых поясов IANA, а иногда как База данных Олсона, со ссылкой на основателя Артура Дэвида Олсона.[5]

Единое соглашение об именах для часовых поясов, например Америка / Нью-Йорк и Европа / Париж, был разработан Полом Эггертом.[6] База данных пытается записать исторические часовые пояса и все гражданские изменения с 1970 года. Время Unix эпоха.[7] Он также включает переходы, такие как летнее время, а также записи високосные секунды.[8]

База данных, а также некоторые ссылки исходный код, находится в всеобщее достояние.[9] Новые редакции базы данных и кода публикуются по мере необходимости, обычно несколько раз в год.[10]

Структура данных

Форматы файлов

База данных tz публикуется в виде набора текстовые файлы которые перечисляют правила и переходы между зонами в удобочитаемом формате. Для использования эти текстовые файлы составлен в набор платформенно-независимых двоичные файлы - один на часовой пояс. Исходный код ссылки включает такой компилятор, называемый zic (компилятор информации о зоне), а также код для чтения этих файлов и использования их в стандартных API такие как местное время() и mktime ().

Определение часового пояса

В базе данных tz часовой пояс это любой национальный регион, где все местные часы согласованы с 1970 года.[11] Это определение касается в первую очередь географических областей, в которых были постоянные местные часы. Это отличается от других определений, которые касаются постоянных смещений от нулевой меридиан. Следовательно, каждый из часовых поясов, определенных базой данных tz, может задокументировать несколько смещения от UTC, обычно включая оба обычное время и летнее время.

В текстовых файлах часовых поясов каждый часовой пояс имеет одну или несколько «строк поясов» в одном из текстовых файлов часовых поясов. В первой строке часового пояса указывается название часового пояса; любые последующие строки зоны для этого часового пояса оставляют имя пустым, указывая, что они относятся к той же зоне, что и предыдущая строка. Каждая строка зоны для зоны определяет для диапазона даты и времени смещение к UTC для стандартного времени - название набора правил, регулирующих летнее время (или дефис, если всегда применяется стандартное время), формат сокращений часовых поясов и, для всей строки, кроме последней, дату и время, в которые заканчивается диапазон даты и времени, определяемый этой строкой.

Правила перехода на летнее время (DST)

Правила для летнее время указаны в именованных наборах правил. Каждый набор правил имеет одну или несколько строк правил в текстовых файлах часовых поясов. Строка правила содержит название набора правил, к которому он принадлежит, первый год, в котором применяется правило, последний год, в котором применяется правило (или «только», если он применяется только в течение одного года, или «максимум», если он является действующим правилом), тип года, к которому применяется правило («-», если он применяется ко всем годам в указанном диапазоне, что почти всегда так, в противном случае имя используется в качестве аргумента сценария, который указывает, относится ли год к указанному типу), месяц, в котором правило вступает в силу, день, в который правило вступает в силу (который может быть определенным днем ​​или спецификацией, такой как «последнее воскресенье месяца») , время дня, в которое правило вступает в силу, количество времени, которое нужно добавить к смещение к UTC когда действует правило, и букву или буквы, которые следует использовать в сокращении часового пояса (например, «S», если правило регулирует стандартное время, и «D», если оно регулирует переход на летнее время).

Названия часовых поясов

Часовые пояса имеют уникальные имена в форме "Площадь/Расположение", например" America / New_York ". Также был сделан выбор в пользу использования английских названий или их эквивалентов и исключения знаков препинания и общих суффиксов. Символ подчеркивания используется вместо пробелов. Дефисы используются там, где они встречаются в названии местоположение. Площадь и Расположение имена имеют максимальную длину 14 символов.[12][13]

Площадь

Площадь это имя континент, океан, или "Etc". В настоящее время используются континенты и океаны. Африка, Америка, Антарктида, Арктический, Азия, Атлантический, Австралия, Европа, Индийский, и Тихий океан.

Океаны включены, поскольку некоторые острова трудно соединить с определенным континентом. Некоторые из них географически связаны с одним континентом, а политически - с другим. Смотрите также Границы между континентами.

Специальная область «Etc» используется для некоторых административных зон, в частности для «Etc / UTC», которая представляет Всемирное координированное время. Чтобы соответствовать POSIX стиль, названия зон, начинающиеся с "Etc / GMT", имеют обратный знак по сравнению со стандартным ISO 8601 конвенция. В области «Etc» зоны к западу от GMT имеют положительный знак, а зоны на востоке имеют отрицательный знак в своем названии (например, «Etc / GMT-14» опережает GMT на 14 часов).

Расположение

Расположение - это название определенного места в пределах области - обычно города или небольшого острова.

Названия стран не используются в этой схеме, прежде всего потому, что они не будут надежными из-за частых политических изменений и изменений границ. Названия больших городов имеют тенденцию быть более постоянными. Тем не менее, специалисты по сопровождению базы данных пытаются включить хотя бы одну зону для каждого ISO 3166-1 альфа-2 код страны, и ряд пользовательских интерфейсов к базе данных используют это преимущество. Кроме того, существует желание сохранить географически компактные местоположения, чтобы любые будущие изменения часовых поясов не разделяли их на разные часовые пояса.[13]

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

В некоторых случаях Расположение сам по себе представлен как составное имя, например часовой пояс "Америка / Индиана / Индианаполис ". Трехуровневые имена включают имена в разделах" Америка / Аргентина / ... "," Америка / Кентукки / ... "," Америка / Индиана / ... "и" Америка / Северная_Дакота / ... ".

Выбранное местоположение репрезентативно для всей территории.

Примеры

Америка / Коста-Риканазвание страны, используемое, потому что название крупнейшего города (и столицы) Сан - Хосе является двусмысленный
Америка / Нью-ЙоркПробел заменен на подчеркивание
Азия / Калькуттаназвание города Калькутта использовался, потому что это был самый густонаселенный город в зоне на момент создания зоны, хотя это уже не так[14]
Азия / Сахалиниспользовано название острова, потому что самый большой город, Южно-Сахалинск, имеет более 14 символов
America / Bahia_Banderasназвание крупнейшего города изменено, "де" удалено из Bahia de Banderas, потому что правильное имя содержит более 14 символов
Антарктида / Дюмон-Дюрвильапостроф удален. Пробел обычно заменяется на "_", но тогда имя превышает 14 символов.

Пример зоны и линий правил

Это строки правил для стандартных правил перехода на летнее время в США, строки правил для правил перехода на летнее время, действующих в США. Восточный часовой пояс (называется "Нью-Йорк" как Нью-Йорк - город, представляющий эту зону) в некоторые годы, и линии поясов для часового пояса America / New_York, начиная с версии выпуска tzdata2011n базы данных часовых поясов. Линии зоны и правила отражают история летнего времени в США.

# ИМЯ правила ОТ ДО ВХОДИТЬ ВКЛ. СОХРАНИТЬ ПИСЬМО / СРАВНЕНИЕ США 1918 1919 г. - март прошлое вс 2:00 1:00 DRule США 1918 1919 - октябрь последнее вс 2:00 0 SRule только США 1942 - 9 февраля 2:00 1:00 з. # WarRule только в США 1945 - 14 августа 23:00 1:00 P # PeaceRule только США 1945 - 30 сентября 2:00 0 SRule США 1967 2006 г. - октябрь последнее вс 2:00 0 SRule США 1967 1973 - апр последнее вс 2:00 1: 00 DRule только США 1974 г. - 6 января 2:00 1:00 DRule США 1975 г. 23 февраля 2:00 1:00 DRule США 1976 1986 г. - апрель последнее вс 2:00 1:00 DRule США 1987 г. 2006 г. - апр вс> = 1 2:00 1:00 DRule макс. США 2007 - март вс> = 8 2:00 1:00 DRule макс 2007 г. США - ноя, вс> = 1 2:00 0 с .... # ИМЯ правила ОТ ДО ВХОДИТЬ ВКЛ ПРИ СОХРАНИТЬ ПИСЬМО только для правила NYC 1920 - март, воскресенье, вс 2:00 1:00, только DRule, NYC 1920 - октябрь, прошлое вс, 2:00 0, правило Нью-Йорк, 1921 1966 - апр, последнее вс 2:00 1:00 DRule NYC 1921 1954 - сентябрь последнее вс 2:00 0 Сура Нью-Йорк 1955 1966 - октябрь последнее вс 2:00 0 S # ИМЯ зоны ФОРМАТ ПРАВИЛ GMTOFF [ДО] Зона Америка / Нью-Йорк -4 : 56: 02 - LMT 1883 18 ноября, 12:03:58 -5: 00 США E% sT 1920 -5: 00 NYC E% sT 1942 -5: 00 US E% sT 1946-5: 00 NYC E% sT 1967 -5: 00 США E% sT

Данные хранятся для каждой зоны

Для каждого часового пояса, имеющего несколько смещений (обычно из-за перехода на летнее время), база данных tz записывает точный момент перехода. Формат также может учитывать изменения даты и времени переходов. Зоны могут иметь исторические изменения в правилах, происходящие много десятилетий назад (как показано в примере выше).

Zone.tab

Файл zone.tab находится в общественном достоянии и перечисляет зоны. Столбцы и сортировка строк описаны в комментариях к файлу следующим образом:

# Этот файл содержит таблицу со следующими столбцами: # 1. ISO 3166 2-символьный код страны. См. Файл `iso3166.tab '. # 2. Широта и долгота основного местоположения зоны # в ISO 6709 формат знак-градусы-минуты-секунды, # либо + -DDMM + -DDDMM, либо + -DDMMSS + -DDDMMSS, # первая широта (+ - север), затем долгота (+ - восток). # 3. Имя зоны, используемое в значении TZ переменная окружения. # 4. Комментарии; присутствует тогда и только тогда, когда в стране несколько строк. # # Столбцы разделены одной табуляцией. # Таблица сортируется сначала по стране, затем по порядку внутри страны, который # (1) имеет географический смысл, а # (2 ) ставит на первое место наиболее густонаселенные зоны, что не противоречит (1).

Данные до 1970 г.

Данные до 1970 г. направлены на то, чтобы быть верными для города, определяющего регион, но не обязательно для всего региона. Это связано с тем, что с 1970 года новые регионы создаются только по мере необходимости для различения часов.

Например, между 1963-10-23 и 1963-12-09 в Бразилии только штаты Минас-Жерайс, Эспириту-Санто, Рио де Жанейро, и Сан-Паулу было летнее время. Однако запрошенный отрыв от America / Sao_Paulo был отклонен в 2010 году на том основании, что с 1970 года часы были одинаковыми во всем регионе.[15]

Время в Германии, который представлен Европа / Берлин, неверно для 1945 года, когда Trizone использовали другие правила перехода на летнее время, чем Берлин.[16]

Покрытие

Зоны, охватывающие несколько стран после 1970 года

Есть две зоны, которые покрывают территорию, которая была охвачена двумя странами после 1970 года. База данных соответствует определениям стран согласно ISO 3166-1, чей предшественник, ISO 3166, был впервые опубликован в 1974 году.

Обслуживание

Код ссылки tz и база данных поддерживаются группой добровольцев. Артур Дэвид Олсон вносит большинство изменений в код, а Пол Эггерт - в базу данных. Предлагаемые изменения отправляются в список рассылки tz, который подключен к comp.time.tz Группа новостей Usenet. Исходные файлы распространяются через FTP-сервер IANA. Обычно эти файлы забирает распространитель программного обеспечения, например Debian, компилируется, а затем исходный код и двоичные файлы упаковываются как часть этого дистрибутива. Конечные пользователи могут либо полагаться на процедуры обновления своего программного обеспечения, что может повлечь за собой некоторую задержку, либо получить исходный код напрямую и самостоятельно создать двоичные файлы. В IETF опубликовал RFC  6557, «Процедуры ведения базы данных часовых поясов», в которой описываются передовые практики, основанные на аналогичных принципах.

Unix-подобные системы

Стандартный путь к базе данных часовых поясов: / usr / share / zoneinfo / в дистрибутивах Linux, macOS, и некоторые другие Unix-подобный системы.

Использование и расширения

Границы часовых поясов

Географические границы в виде наборов координат не являются частью базы данных tz, но границы опубликованы Эриком Мюллером.[1] в виде векторных многоугольников. Используя эти векторные многоугольники, можно определить для каждого места на земном шаре зону базы данных tz, в которой оно находится.

Использование в других стандартах

Юникод Общий репозиторий данных локали (CLDR) относится к зонам в базе данных tz. Однако, поскольку имя зоны может меняться от одной версии базы данных tz к другой, CLDR назначает ООН / ЛОКОД для города, используемого в названии зоны, или внутреннего кода, если такой город для зоны не существует, для зоны tzdb.[17][18]

Использование в программных системах

База данных tz используется для обработки и преобразования часовых поясов во многих компьютерных программных системах, включая:

Идентификаторы часовых поясов Олсона также используются Unicode. Общий репозиторий данных локали (CLDR) и Международные компоненты для Unicode (ICU). Например, таблица CLDR Windows – Tzid сопоставляет идентификаторы часовых поясов Microsoft Windows со стандартными именами Olson, хотя такое сопоставление не может быть совершенным, поскольку количество часовых поясов в системах Windows значительно ниже, чем в базе данных IANA TZ.[28]

История

Истоки проекта восходят к 1986 году или ранее.[29]

Иск 2011 года

30 сентября 2011 г. Astrolabe, Inc. против Олсона и др., было подано по Авторские права в базе данных.[30][31] В результате 6 октября 2011 г. список рассылки базы данных и FTP сайт был закрыт.[32] Дело касалось использования специалистами по обслуживанию баз данных Американский Атлас, от Томас Дж. Шанкс, и Международный Атлас, Томас Дж. Шанкс и Рик Поттенгер. Он пожаловался на несанкционированное воспроизведение данных атласа в архиве списков рассылки часовых поясов и в некоторых коллекциях вспомогательных ссылок, поддерживаемых базой данных, хотя на самом деле он не указывал на саму базу данных. Жалоба касалась только компиляции исторических данных о часовых поясах и не касалась текущих таблиц часовых поясов мира tzdata.[31][33][34]

Этот иск был разрешен 22 февраля 2012 года после участия Фонд электронных рубежей, когда Астролябия добровольно переехал уволить судебный процесс, не имея когда-либо служил ответчиков и согласились на завет, чтобы не судиться в будущем.[35]

Перейти в ICANN

ICANN взяла на себя ответственность за ведение базы данных 14 октября 2011 года.[4] Полная база данных и описание текущих и будущих планов по ее обслуживанию доступны в Интернете по адресу IANA.[36]

Смотрите также

использованная литература

  1. ^ а б Мюллер, Эрик (8 октября 2012 г.). "Шейп-файл часовых поясов TZ мира".
  2. ^ Эггерт, Пол; Олсон, Артур Дэвид (29 ноября 2007 г.). "Источники данных о часовом поясе и переходе на летнее время". Получено 3 декабря 2007.
  3. ^ Эггерт, Пол (17 января 2005 г.). "Re: FW: Регистрация часового пояса IANA - предложение". tz (Список рассылки).
  4. ^ а б «ICANN будет управлять базой данных часовых поясов» (оповещение о новостях). ICANN. 15 октября 2011 г.. Получено 30 декабря 2011.
  5. ^ Олсон, Артур Дэвид (16 декабря 1986 г.). «Проблема с часовым поясом решена? Другие проблемы. Новая страница руководства ctime». tz (Список рассылки).
  6. ^ Эггерт, Пол (20 октября 1993 г.). "предложение для названий часовых поясов". tz (Список рассылки).
  7. ^ Олсон, Артур Дэвид (18 марта 1987 г.). «Re: Список вопросов». tz (Список рассылки).
  8. ^ Дивайн, Боб (2 июня 1988 г.). "високосные секунды; [0-60] в порядке". tz (Список рассылки).
  9. ^ Эггерт, Пол (11 ноября 1995 г.). "вопросы и комментарии к http://tycho.usno.navy.mil/tzones.html". tz (Список рассылки).
  10. ^ "zoneinfo tzcode и tzdata архивы (FTP)". Получено 30 октября 2007.
  11. ^ Теория (текстовый файл), содержащийся в дистрибутиве "tzcode". Ссылка на версию tzcode2007h.tar.gz от 1 октября 2007 г.
  12. ^ Олсон, Артур Дэвид (1 мая 2010 г.). "предлагаемые изменения пакета часовых поясов (Bahia de Banderas; название версии)". tz (Список рассылки).
  13. ^ а б c Олсон, Артур Дэвид (23 октября 2017 г.). «Теория и прагматика ЦТ-кода и данных». IANA.
  14. ^ Пол Эггерт (21 декабря 2012 г.). "Re: zoneinfo: ist: error". tz (Список рассылки).
  15. ^ Олсон, Артур Дэвид (6 января 2010 г.). "RE: маленький нюанс в Бразилии 1963". tz (Список рассылки).
  16. ^ Летнее время и летнее время в Германии до 1979 г., Physikalisch-Technische Bundesanstalt. (2010)
  17. ^ «Расширение локали Unicode ('u') для BCP 47». CLDR - Репозиторий данных Common Locale Unicode.
  18. ^ «Язык разметки данных локали Unicode (LDML), часть 4: даты». раздел 5, Имена часовых поясов.
  19. ^ «Поддержка и настройка часового пояса Олсона». Информация об AIX 7.1. IBM. Получено 12 марта 2011.
  20. ^ «Управление переменной часового пояса». IBM. 2 февраля 2007 г.. Получено 14 сентября 2018.
  21. ^ а б «Операционная система AIX обновлена ​​для поддержки перехода на летнее время 2007 г.». IBM. 18 октября 2007 г.. Получено 12 марта 2011.
  22. ^ "Переход на летнее [sic] время в 2007 году для Unix". Центр академических вычислений и коммуникаций Иллинойского университета в Чикаго. 25 февраля 2007 г. Архивировано с оригинал 1 августа 2012 г.. Получено 18 марта 2008.)
  23. ^ Викремасингхе, Кристофер (30 марта 2009 г.). «Введение перехода на летнее время в Западной Австралии в 2006 г.». AIX Wiki. IBM. Получено 11 марта 2011.
  24. ^ "ZoneId".
  25. ^ «Спецификация API интернационализации ECMAScript 2015». ecma-international.org (2-е изд.). Июнь 2015 г.. Получено 14 января 2020. Спецификация API интернационализации ECMAScript 2015 определяет часовые пояса с использованием имен зоны и ссылки базы данных часовых поясов IANA. Их каноническая форма - это соответствующее имя зоны в регистре, используемое в базе данных часовых поясов IANA. ... Рекомендуется, чтобы реализации использовали информацию о часовом поясе из базы данных часовых поясов IANA.
  26. ^ «Библиотека TZDB перемещена на GitHub 23 апреля 2014 г.». Получено 21 октября 2015.
  27. ^ Oracle Database Globalization Support Guide 10g Release 1 (10.1): Глава 4, раздел «Выбор файла часового пояса». Корпорация Oracle. Июнь 2004. С. 4–14. Деталь № B10749-02. Архивировано из оригинал 1 декабря 2008 г.. Получено 30 октября 2007.
  28. ^ «Окна → Цид». Консорциум Unicode. 12 ноября 2007 г.. Получено 17 февраля 2008.
  29. ^ Олсон, Артур Дэвид (24 ноября 1986 г.). "seismo! elsie! tz; новые версии часовых поясов". tz (Список рассылки).
  30. ^ "Astrolabe, Inc. против Олсона и др.". 6 октября 2011 г.. Получено 6 октября 2011.
  31. ^ а б "ASTROLABE, INC., Истец, против АРТУР ДЭВИД ОЛСОН и ПОЛ ЭГГЕРТ, Ответчики" (PDF ). 30 сентября 2011 г.. Получено 7 октября 2011.
  32. ^ Олсон, Артур Дэвид (6 октября 2011 г.). «Гражданский иск; отключение ftp; отключение списка рассылки». tz (Список рассылки). Получено 27 октября 2018.
  33. ^ «База данных часовых поясов отключена». Дейли Паркер. 6 октября 2011 г.. Получено 6 октября 2011.
  34. ^ «База данных часовых поясов - мнение Астролябии». Блог Стивена Колебурна. 13 октября 2011 г.. Получено 26 октября 2011.
  35. ^ "EFF выигрывает защиту базы данных часовых поясов". Electronic Frontier Foundation. 22 февраля 2012 г.. Получено 22 февраля 2012.
  36. ^ «База данных часовых поясов». IANA.

внешняя ссылка

Общее

Официальные источники IANA

Страницы руководства

  • зик (8) – Linux Администрирование и привилегированные команды Руководство (дает синтаксис исходных файлов для базы данных tz)
  • tzfile (5) – Linux Форматы файлов Руководство (дает формат скомпилированных файлов базы данных tz)