1. NAME(名)
zic - 时区编译器
2. SYNOPSIS(概要)
zic [-v] [-d directory] [-l localtime] [-p posixrules] [-L leapsecondfilename] [-s] [-y command] [filename ...]
3. DESCRIPTION(函数描述)
zic 从filename指定的时区源文件中读取文本,并根据读入的文本创建相应的时区文件。如果 filename 为 -,则读取标准输入。下面给出各选项的解释,
- -v
如果时区源文件中的年份不在 time(2) 值所代表的年份范围内,就发出警告。 - -d directory
在指定目录中而非标准目录(下文说明)中创建时区文件。 - -l timezone
使用给定的时区作为本地时间。zic 将表现为时区源文件中包含形如Link timezone localtime
的 Link 行。 - -p timezone
在处理POSIX格式时区环境变量时,请使用给定时区的规则。zic 将表现为时区源文件中包含形如Link timezone posixrules
“的 Link 行。 - -L leapsecondfilename
从指定文件中读取闰秒信息。如果不使用此选项,则输出文件中不会显示闰秒信息。 - -s
将存储在输出文件中的时间值限制为相同的值,无论这些值是带符号的还是无符号的。您可以使用此选项生成SVVS兼容的文件。 - -y comand
使用给定的 command 而非 yearistype 检查年份类型(见下文)。
时区源文件由Rule行、Zone行、Link行组成,各行又由字段组成,字段之间用任意数量的空白字符分隔。忽略输入行上的前导空格和尾随空格。输入行中一个未加引号的井号(#)表示注释,从井号出现直至该行末尾。如果要使用将空白字符和井号字符,则可以用双引号括起来。任何空白行都将被忽略。
Rule 行
#Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule US 1967 1973 - Apr lastSun 2:00 1:00 D
- NAME
给出此规则所属的规则集的(任意)名称。 - FROM
给出应用本规则的起始年。公历(the Gregorian calendar)的话可以使用任意整数年。单词 minimum(或缩写)表示以整数表示的最小年份。单词 maximum(或缩写)表示以整数表示的最大年份。Rules can describe times that are not representable as time values, with the unrepresentable times ignored; this allows rules to be portable among hosts with differing time value types. - TO
给出应用本规则的最后一年。除了可以使用最小值和最大值,还可以使用单词 only(或缩写),表示重复 FROM 字段的值。 - TYPE
给出规则适用的年份类型。如果 TYPE 为 -,则该规则适用于 FROM 到 TO 之间的所有年份(包括首尾年份)。如果 TYPE 是其他值,则 zic 执行yearistype year type
命令以检查年份的类型:退出状态为零表示年份为给定类型;退出状态为1表示年份不是给定类型。 - IN
本规则开始月份,可以用缩写 - ON
本规则开始日期,可以有如下几种形式:
5 本月5号
lastSun 本月最后一个星期日
lastMon 本月最后一个星期一
Sun>=8 8号之后(包含8号)的第一个星期日(本月第二个星期日)
Sun<=25 25号之前(包含25号)的最后一个星期日
一周中的日期名称可以缩写或拼写完整。请注意,ON字段中不得有空格。 - AT
本规则开始时间,可以有如下几种形式:
2 时
2:00 时分
15:00 24小时制的时
1:28:14 时分秒
- 相当于0
其中0时是一天开始时的午夜,24时是一日结束时的午夜。如果给定时间是当地“挂钟”时间,则这些形式中的任何一种都可以后跟字母w,如果给定时间为当地“标准”时间,可后跟字母s,如果给定的时间为世界时,则可后跟字母u(或g或z);在没有指定下标的情况下,默认为墙上时间。 - SAVE
给出规则生效时要添加到本地标准时间上的偏移量。该字段的格式与 AT 字段相同(当然,不使用w和s后缀)。 - LETTER/S
给出该规则生效时要使用的时区缩写的“可变部分”(例如,“EST”和“EDT”中的“S”和“D”)。如果此字段为 -,则变量部分为null。
Zone 行
#Zone NAME UTCOFF RULES/SAVE FORMAT [UNTIL]
Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00
- NAME
时区文件名。 - UTCOFF
时区偏移。此字段的格式与 Rule 行的 AT 和 SAVE 字段的格式相同;如果是从UTC中减去时间,则该字段以减号开头。 - RULES/SAVE
在时区中应用的 rule 名称或添加到本地标准时间上的时间量。如果此字段为 -,则表示使用本地标准时间。 - FORMAT
时区缩写的格式。字符对儿%s用于显示时区缩写的“可变部分”。或者,呈现为用斜线(/)分隔的标准时区缩写和夏令时缩写。 - UNTIL
一个位置的UTC偏移量或规则更改的时间。它被指定为某年、某月、某天和当天中的某个时间。如果指定了此项,则从给定的UTC偏移量和规则更改生成时区信息,直到指定时间为止。月份、日期、一天中的某时间与 Rule 的 IN、ON 和 AT 列具有相同的格式;可以省略尾随列,并默认为缺失列的最早可能值。
下一行必须是“延续”行;这与 Zone 行的形式相同,只是省略了字符串“Zone”和时区名,因为续行将在前一行使用的文件中的前一行中指定为 UNTIL 字段的时间开始放置信息。连续行可能包含一个 UNTIL 字段,就像 Zone 行一样,表示下一行是下一个延续行。
Link 行
#Link LINK-FORM LINK-TO
Link Europe/Istanbul Asiz/Istanbul
LINK-FROM字段应显示为某些 Zone 行中的 NAME 字段;LINK-TO字段被用作该时区的替代名称。
除了“延续”行之外,行可以以任何顺序出现在时区文件中。
Leap 行
#Leap YEAR MONTH DAY HH:MM:SS COSS R/S
Leap 1974 Dec 31 23:59:60 + S
YEAR、MONTH、DAY和HH:MM:SS字段显示闰秒发生的时间。如果添加了一秒钟,CORR字段应为“+”,如果跳过了一秒钟则应为“-”。如果其他字段给出的闰秒时间应解释为UTC,则R/S字段应为 “Stationary” 或其缩写;如果其他字段提供的闰秒应解释为本地挂钟时间,则R/S字段应为 “Rolling” 或其缩写。
4. FILES(文件)
/usr/local/etc/zoneinfo
用于创建时区文件的标准目录。
5. NOTES(注意事项)
对于具有两种以上本地时间类型的地区,您可能需要在最早转换时间规则的 AT 字段中使用本地标准时间,以确保编译文件中记录的最早过渡时间是正确的。
6. SEE ALSO(另请参阅)
tzfile(5) zdump(8)
7. COLOPHON(书籍的末页,出版社名称)
此页面是Linux man-pages项目4.04版本的一部分。项目描述、bug报告以及此页面的最新版本,可访问 http://www.kernel.org/doc/man-pages/。