ZIC(8)

НАЗВАНИЕ
zic - обработчик данных о часовом поясе

СИНТАКСИС
zic [-v] [-d каталог] [-l местное_время] [-p правила_posix] [-L файл_с_данными_о_високосных_секундах] [-s] [-y команда] [имя_файла ... ]

ОПИСАНИЕ
Zic считывает содержимое файла (или нескольких файлов), заданного (заданных) в командной строке, и создает файлы с информацией о преобразовании времени, обозначенные в исходных файлах. Если имя_файла равно -, то используются данные со стандартного входа.

Опции:

-d каталог
    Создает файлы информации о преобразовании времени в заданном каталоге, а не в каталоге, открытом по умолчанию (он описан ниже).

-l часовой_пояс
    Считет время заданного часового пояса местным временем. В этом случае zic будет работать, как если бы во входном файле была строка link примерно следующего содержания:

    Link    часовой_пояс    localtime

-p часовой_пояс
    Использует правила заданного часового пояса при обработке переменных окружения, которые содержат информацию о часовых поясах в стандарте POSIX. В этом случае Zic будет работать, как если бы во входном файле была строка link примерно следующего содержания:

    Link    часовой_пояс    posixrules

-L файл_с_данными_о_високосных_секундах
    Использует информацию о високосных секундах из заданного файла. Если не задать эту опцию, то в выходных файлах не будет информации о високосных секундах.

-v  Выводит сообщения об ошибках в годах, описанных в файле данных и не входящих в интервал тех лет, которые могут быть представлены функцией time(2).

-s  Вносит в файл результатов только те значения, которые зависят от наличия перед ними знаков "+" или "-". Эту опцию можно использовать для получения файлов совместимых с SVVS.

-y команда
    Использует заданную команду вместо yearistype при проверке типов лет (см. ниже).

Входные строки состоят из полей. Поля отделены друг от друга пробелами. Начальные и конечные пробелы отсекаются. Неэкранированый символ решетки (#) в начале строки является началом комментария, который продолжается до конца этой строки. Пробелы и символы решетки могут быть заключены в двойные кавычки ("), если они являются частью поля. Пустые строки и строки только с комментариями игнорируются. Непустые строки бывают трех видов: строки правил, строки поясов и строки ссылок.

Строка правил имеет следующую форму:

Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S

Например:

Rule	US	1967	1973	-	Apr	lastSun	2:00	1:00	D

Строка правил состоит из следующих полей:

NAME
    Задает название группы правил, в которую входит настоящее правило.

FROM
    Задает год, с начала которого действует правило. Можно задать любой год в виде целого числа; предполагается использование Григорианского календаря. Слово minimum (или его сокращение) означает самый ранний год компьютерного летоисчисления, представляемый в виде числа. Слово maximum (или его сокращение) означает самый поздний год компьютерного летоисчисления, представляемый в виде числа. Правила могут описывать время, которое невозможно представить в виде значений time, поэтому такие значения игнорируются, что позволяет создавать правила, переносимые с системы на систему, в которых различаются структуры time.

TO  Задает год, до которого действует правило (включительно). Кроме слов minimum и maximum (описанных выше), может использоваться слово only (или его сокращение) для повторения значения поля FROM.

TYPE
    Задает тип года, в течение которого действует правило. Если TYPE равно -, то правило действует в течение всех лет, с FROM по TO включительно. Если TYPE не равно -, то zic исполняет команду
    yearistype год тип
    для проверки типа года: если код завершения этой команды равен 0, это означает, что год соответствует заданному типу; если код завершения этой команды не равен 0, то год не соответствует заданному типу.

IN  Задает месяц, в течение которого действует правило. Названия месяцев могут сокращаться.

ON  Задает день, в течение которого действует правило. Примеры существующих форматов:

    5	пятое число
    lastSun	последнее воскресенье месяца
    lastMon	последний понедельник месяца
    Sun>=8	первое воскресенье месяца считать от 8-го числа
    Sun<=25	последнее воскресенье месяца считать включительно до 25-го числа

    Названия дней недели могут сокращаться. Заметьте, что в поле ON не должно быть пробелов.

AT  Задает время дня, в течение которого действует правило. Примеры существующих форматов:

    2	время в часах
    2:00	время в часах и минутах
    15:00	24-часовой формат времени (для времени после полудня)
    1:28:14	время в часах, минутах и секундах,

    где 0 - это полночь в начале дня, а 24 - это полночь в конце дня. Любая из этих форм может сопровождаться символами: w (означающим местное время), s (означающим местное время) или u (или g, или z),- если заданное время является универсальным; при отсутствии этого символа задается местное время.

SAVE
    Задает период времени, которое надо добавить к стандартному местному времени, в течение которого должно действовать правило. Формат этого поля аналогичен формату поля AT (разумеется, суффиксы w и s не используются).

LETTER/S
    Задает (например, или в или названия часового пояса, которую необходимо использовать для того, чтобы правило действовало. Если это поле равно -, то переменная его часть не используется.

Строка часового пояса имеет следующую форму:

Zone	NAME	GMTOFF	RULES/SAVE	FORMAT	[UNTIL]

Например:

Zone	Australia/Adelaide	9:30	Aus	CST	1971 Oct 31 2:00

Строка часового пояса состоит из следующих полей:

NAME
    (названия часового пояса). Это имя используется при создании для часового пояса файла с информацией о преобразовании времени.

GMTOFF
    Период, который надо добавить к UTC для того, чтобы получить стандартное время этого часового пояса. Формат этого поля аналогичен формату полей AT и SAVE в строке правил. Если это поле начинается со знака '-', то этот период должен быть вычтен из UTC.

RULES/SAVE
    Правило (или правила), которые действуют в часовом пояса, или период времени, который необходимо добавить к стандартному местному времени. Если это поле равно -, то в этом часовом поясе всегда стандартное местное время.

FORMAT
    Формат аббревиатур, обозначающих часовой пояс. Сочетание %s используется для указания положения аббревиатуры, обозначающей часовой пояс. С другой стороны, можно использовать слэш (/) для разделения аббревиатур стандартного и зимнего времени.

UNTIL
    Время, когда меняется правило или происходит смещение местного времени относительно UTC заданного часового пояса. Это время задается с помощью указания года, месяца, дня и времени этого дня. Если эти параметры указаны, то информация о часовом поясе формируется в соответствии с UTC и изменением правила до обозначенного времени. Месяц, дни и время указывается в том же формате, что и поля правил IN, ON, и AT; последние колонки могут быть пропущены (в этом случае по умолчанию используются самые ранние возможные значения отсутствующих колонок).

    Следующая строка должна быть строкой она имеет ту же форму, что и строка часового пояса, за исключением того, что не содержит слова и названия пояса, так как отображает параметры, запускающиеся тогда же, что и параметры часового пояса, заданного в поле UNTIL предыдущей строки. Строки продолжения могут содержать поле UNTIL, как и сама строка часового пояса. Это означает, что следующая за текущей строкой тоже будет строкой продолжения.

Строка ссылки имеет следующую форму:

Link	LINK-FROM	LINK-TO

Например:

Link	Europe/Istanbul	Asia/Istanbul

Поле LINK-FROM должно содержать тот же самый параметр, что и поле NAME одного из часовых поясов; поле LINK-TO задает альтернативное имя того же пояса.

Строки могут располагаться в файле в произвольном порядке (за исключением строк продолжения).

Файл, описывающий високосные секунды, состоит из строк в следующем формате:

Leap	YEAR	MONTH	DAY	HH:MM:SS	CORR	R/S

Например:

Leap	1974	Dec	31	23:59:60	+	S

Поля YEAR, MONTH, DAY, и HH:MM:SS задают то время, в которое была введена високосная секунда. Поле CORR может быть равно если была добавлена секунда, или если она не добавлена. Поле R/S может быть равно слову (или его сокращению), если время високосной секунды, описанное в предыдущих полях, было задано в UTC, или слову (или его сокращению), если время високосной секунды, описанное в предыдущих полях, было местным.

ЗАМЕЧАНИЯ
Для областей с 2 вариантами местного времени и более вам, скорее всего, будет необходимо задать стандартное местное время в поле AT согласно первому правилу смещения времени. Это необходимо для того, чтобы наиболее раннее время смещения, записанное в файл результатов, было правильным.

ФАЙЛЫ
/usr/local/etc/zoneinfo    - стандартный каталог, предназначенный для файлов с результатами
выполненных операций.

СМ. ТАКЖЕ
newctime(3), tzfile(5), zdump(8)