Як саме використовується база даних tzdata?


10

Здається, різні операційні системи по-різному обробляють літній час (DST). Мені дуже подобається підхід Cisco IOS, який дуже простий і дозволяє змінювати дату і час, коли починається і закінчується DST. Наприклад:

clock summer-time EDT recurring 2 Sun Mar 2:00 1 Sun Nov 2:00 60

..набір годин на 60 хвилин вперед у неділю другого тижня березня о 2:00 та зміщення годин на 60 хвилин назад у першу неділю листопада о 2:00. Як Linux обробляє DST? Я знаю, що є tzdataпакет, який містить файли даних часового поясу і ці файли встановлені в /usr/share/zoneinfo/каталог. Як і за допомогою яких утиліт використовуються ці файли? Я бачу зсув з назви UTC (2) та часових поясів (EET та EEST) у файлі:

T60:~# strings /usr/share/zoneinfo/posix/Europe/Helsinki
TZif2
    HMT
EEST
TZif2
EEST
EET-2EEST,M3.5.0/3,M10.5.0/4
T60:~# 

Крім того, M3мабуть, третій місяць і M10десятий місяць? Крім того, десь слід вказати і зміщення. Наприклад, в IOS можна налаштувати, що після того, як станеться DST, годинник зміщується, наприклад, 90 або 120 хвилин замість 60.

Відповіді:


4

Якщо ви подивитеся на сторінку Вікіпедії стосовно бази даних TZ :

витяг

Формати файлів

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

Додатковий пошук виявив це запитання і відповіді на stackoverflow під назвою: Питання формату файлу бази даних Timezone , в якому була додаткова інформація про формат файлу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.