Главная » 2017 » Ноябрь » 19 » man 5 tzfile
19:57
man 5 tzfile

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


tzfile - информация о часовом поясе



ОПИСАНИЕ


Файлы с информацией о часовых поясах, используемые tzset(3), обычно, находятся в
каталоге /usr/share/zoneinfo. Они начинаются с 44-байтного заголовка, содержащего
следующие поля:

* Информационная (magic) четырехбайтовая последовательность ASCII “TZif” ,
означающая, что это файл с информацией о часовом поясе.

* Байт с версией формата файла (например 2017, ASCII NUL или “2”, или “3”).

* Пятнадцать байт, заполненных нулями, зарезервированы для использования в
будущем.

* Шесть четырехбайтовых целых значений, записанных в стандартном порядке байт
(старший байт значения записывается первым). Значения по порядку:

tzh_ttisgmtcnt
Количество UT/локальных (local) индикаторов в файле.

tzh_ttisstdcnt
Количество стандартных/местных (wall) индикаторов в файле.

tzh_leapcnt
Количество високосных секунд, для которых в файле определены элементы
данных.

tzh_timecnt
Количество моментов перевода часов, для которых в файле определены
элементы данных.

tzh_typecnt
Количество типов локального времени, для которых в файле определены
элементы данных (не должно быть равно 0).

tzh_charcnt
Количество байт строк аббревиатур часовых поясов, определённых в файле.

После заголовка, описанного выше, располагаются поля, длина которых зависит от
содержимого заголовка:

* Четырёхбайтовые знаковые целые tzh_timecnt, сортируются в порядке возрастания.
Эти значения записываются в стандартном порядке байт. Каждое значение
используется как момент перевода часов (возвращаемый time(2)), по правилам
которого вычисляется изменение локального времени.

* Однобайтовые беззнаковые целые tzh_timecnt; каждое показывает как различные типы
типов локального времени, описанные в файле, связаны с периодом времени,
начинающимся как переходное время с тем же индексом. Эти значения служат
индексами для следующего поля.

* Элементы tzh_typecnt ttinfo определены следующим образом:

struct ttinfo {
int32_t tt_gmtoff;

поясов, за которым в файле следуют структуры ttinfo.

* Пары четырехбайтных значений tzh_leapcnt, записанные в стандартном порядке
байт; первое значение каждой пары задает неотрицательное время
(возвращаемое time(2)) появления високосной секунды; вторая пара определяет
общее количество високосных секунд, добавляемых во время периода времени,
начинающегося в указанное время. Пары значений располагаются в порядке
возрастания времени. Каждым переходом считается одна високосная секунда,
положительная или отрицательная; переходы всегда отстают друг от друга на
не менее чем 28 дней минус 1 секунда.

* Индикаторы стандартного/местного времени tzh_ttisstdcnt, хранимые в виде
однобайтовых значений; эти индикаторы определяют, как связаны моменты
перевода часов с локальными типами времени: согласно стандартному или
местному времени. Эти индикаторы используются, когда файл с информацией о
часовых поясах работает с POSIX-совместимыми переменными окружения часовых
поясов.

* UT/локальные индикаторы tzh_ttisgmtcnt, хранимые в виде однобайтовых
значений; эти индикаторы определяют, как связаны моменты перевода часов с
локальными типами времени: согласно UT или локальному времени. Эти
индикаторы используются, когда файл с информацией о часовых поясах работает
с POSIX-совместимыми переменными окружения часовых поясов.

Функция localtime(3) использует первую структуру стандартного времени ttinfo из
этого файла (или просто первую структуру ttinfo при отсутствии структуры
стандартного времени), если значение tzh_timecnt равно нулю или аргумент времени
меньше первого момента перевода часов, записанного в файле.

Формат версии 2
Для файлов версии 2 с информацией о часовых поясах вышеприведённый заголовок и
данные, идущие за вторым заголовком и данными, идентичны по формату, за
исключением того, что для каждого перевода времени или високосной секунды
используется 8 байт (високосная секунда занимает оставшиеся четыре байта). После
второго заголовка и данных следует закрывающий символ новой строки, строка в
формате переменной TZ из окружения POSIX для обработки моментов после последнего
перевода времени, хранящегося в файле (между символами новой строки ничего нет,
если для таких моментов нет представления POSIX). Строка в формате POSIX должна
соответствовать типу локального времени после обоих данных о временах последнего
перевода; например, если задана строка “WET0WEST,M3.5.0,M10.5.0/3” то, если
последний перевод времени был в июле, тип перевода локального времени должен
задаваться сокращением для времени перевода на зимнее время “WEST” , который на
один час восточнее UT.

Формат версии 3
В формате файлов часовых поясов версии 3 в строке в стиле POSIX-TZ можно
использовать два небольших расширения формата POSIX TZ, это описывается в
newtzset(3). Во-первых, часовая часть времён перевода может быть знаковой и имеет
диапазон с -167 по 167, и не соответствовать беззнаковому значению POSIX от 0 до
24. Во-вторых, DST действует на весь год, если он начинается с 1 января 00:00 и
заканчивается 31 декабря в 24:00 плюс разница между зимним и обычным временем.

В будущих изменениях формата могут появиться дополнительные данные.



СМОТРИТЕ ТАКЖЕ


time(2), localtime(3), tzset(3), tzselect(8), zdump(8), zic(8)

Категория: (5) Форматы файлов и соглашения | Просмотров: 531 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar