总览
zic [ -v ] [ -d directory ] [
-l localtime ] [ -p posixrules ] [ -L
leapsecondfilename ] [ -s ] [ -y command ] [
filename ... ]
描述
Zic
从文件中读取文本输入,文件的名字是用命令行指定的;
然后生成时间转换信息文件,此文件由输入指定。
如果 文件名 是 -
,从
标准输入中读取。
可得到以下选项:
- -d
目录
- 在指定的目录中生成时间转换信息文件,而不是下面的标准
的目录名。
- -l
时区
- 用给定的时区作为本地时间。
Zic
对此选项的对待如同在输入中有下面格式的连接行
连接 (从) 时区
(到)本地时间
- -p
时区
- 当处理 POSIX
格式的时区环境变量时,使用给定的时区规则。
Zic
对此选项的对待如同在输入中有下面格式的连接行
连接 (从) 时区
(到)POSIX规则
- -L
闰秒文件名
- 从指定名字的文件中读闰秒信息。
如果不使用本选项,则在输出文件中不出现闰秒信息。
- 译注:
早期的日期时间度量采用天文方法,GMT
(Greenwich Mean
- Time,格林威治平均时)
中的 Greenwich
所指称的是英国的一个
天文台。1948年发明了原子钟,当前使用铯133原子钟的国际原子
时间(TAI)与地球的公转和自转无关。由于地球自转的速度逐渐变
慢,为保持与太阳运动的同相,
当 TAI
与太阳时之间的差距达
到 800ms
时,在太阳时中加入闰秒调快太阳时的时间系统。矫正
后的时间称为 UTC
时间(Universal Coordinated
Time,世界时)。 PC
机以本机器内的晶振计时,
没有与 UTC
时间同步的机制。UTC
是法语的缩写。
引自:现代操作系统/Andrew
S. Tanebaum 著。-北京:
机械工业
出版社,1999.11。第 11
章,第 11.1.2 节;第 5
章, 第 5.4.1 节。
- -v
- 当出现在数据文件中的年超出了
time(2)
可表示的值的年的范围时提出申诉。
(让用户知道他干不了超出自身能力的事)
- -s
- 限定在输出文件中存储的时间值无论被作为有符号或无符号
均是同一个值。你能用此选项生成
SVVS 兼容文件。
- 译注: 传统 UNIX
使用三十二位有符号整数计数器以秒为单位计
- 时,以1970年1月1日为零起点,在2038年将溢出,负数可表示到
1901年。Linux
使用三十二位无符号整数计数器以秒为单位计时,
以1970年1月1日为零起点,在2106年将溢出。由此决定了时间值
的范围(至少是在 ANSI C
中)。
引自:现代操作系统/Andrew
S. Tanebaum 著。-北京:
机械工业
出版社,1999.11。第 5
章,第 5.4.2 节。
- -y
命令
- 当检测年的类型时,使用给定的
命令 ,而不是 yearistype
(见后)
输入行由字段组成。字段之间以白空格字符(空格或
TAB)分隔。
前导和后挂的白空格将被忽略。在输入中的未加引号的
# 号
表示直到其所在行结束的部分是注释。如果要在字段中使用空白和
# 号,
你要把它们用双引号括起来。任何(去除了注释后的)空行将被
忽略。非空行应是以下三种类型之一:
规则行,时区行,连接行。
规则行的格式
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 最大
(或其略写)一词的意思是可表示成整数的最大年份。
规则可以描述不能以时间值表示的时间,
但忽略不能以时间值表示的时间,
这允许规则在不同时间值类型的主机之间有可移植性。
- TO
到...(年)
- 给出本规则应用的终止年份。除了上面的
最大 和 最小 , only
唯一
(或其略写)一词的意思是与
FROM
字段有相同的值。
- TYPE
类型
- 给出本规则应用的年份类型。如果
TYPE 是 -
,则本规则应用于包含在
FROM 和 TO
之间的所有年份。如果是其他类型,则
Zic 执行下面的命令
yearistype year type
来检测某一年的类型:
退出状态 0
表示此年是给定的类型;
退出状态非 0
表示此年不是给定的类型。
- 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
点是一天开始,
午夜 24
点是一天结束。
对于任何以上格式,如果给定的时间是本地的
"墙钟"
时间,可以后跟字母
w ;
如果给定的时间是本地的
"标准"
时间,可以后跟字母
s ;
果给定的时间世界时间,可以后跟字母
u (或 g 或 z )
如果没写此种指示符,假定是"墙钟"时间。
- 译注:例如我的"墙钟"时间是北京时间(GMT+8),我的本地标准时间
- 是
GMT+9(哈尔滨所在的时区的时间)。
- SAVE
补偿
- 给出当本规则有效时增加到本地标准时间上的时间量。
本字段与 AT
字段格式相同(当然,未使用
w 和 s 后缀)。
- LETTER/S
字母
- 给出当本规则有效时时区缩写的
"可变部分" (例如,
"EST"中 的 "S"或
"EDT"中的
"D")。如果本字段是
-,可变部分是空。
时区行格式
Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
例如:
Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00
组成规则行的字段是:
- NAME 名字
- 时区的名称,被作为为时区而生成的时间转换文件的名字。
- GMTOFF
GMT-偏移量
- 为得到本时区的标准时间而应加到
UTC 时间上的时间量。
本字段与规则行的 AT
和 SAVE
有相同的格式;字段值是负值
(即以负号开始)表示要从
UTC
时间上减去的时间量。
- RULES/SAVE
规则/补偿
- 本时区应用的规则的名字,或者是应加到本地标准时间上的
时间量
。如果本字段是 -
,则本时区总是用标准时间。
- FORMAT
格式
- 本时区的时区缩写的格式。字符对
%s 表示时区缩写的
"可变部分"
。另外,/ 符号(斜扛)
分隔标准时和夏令时的缩写。
- UNTIL
直到
- 是某个位置的 UTC
偏移量或规则改变的时间。它被指定为
某年某月某日某时。如果指定了本字段,直到指定的时间之
后,才会产生从改变了的
UTC
偏移量和规则生成的时区信息。
某年某月某日某时的格式同于规则中的
IN、ON 和 AT 列;
随后的列可以省略,给未写出的列的缺省值是可能的最早的值。
- 下一行必须是一个
"接续"
的行,就是说,除了字符串
"Zone"
和名字省略了之外,与时区行有一样的格式;接续行在上一行
的 UNTIL
字段所指定的时间开始后,按本行的
UTC 偏移量或规
则在上一行名字字段指定的文件中生成时区信息。接续行可以
有象时区行一样的 UNTIL
字段,用于指示下一行是自己的接续。
- 译注:上面的这段绕口令的意思是
- zome 输出的时区文件名
规则1 规则2生效时间
规则2 规则3生效时间
规则n
连接行格式
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
字段在应增加一秒时是
"+",在应减少一秒时是
"-"。
在其他字段给出的闰秒时间应被解释为
UTC 时间的情况下, R/S
字段应是 S ( "Stationary"
静止一词的缩写);在其他字段给出的闰秒时间应被解释
为本地墙钟时间的情况下,
R/S 字段应是 R(
"Rolling"滚动一词的缩写)。
注意
对于有多于两种类型的本地时间的地区,你可能需要用最早变更时
间的规则的 AT
字段中的本地标准时间,来确保记录在编译的文件
中的最早变更时间是正确的。
相关文件
/usr/local/etc/zoneinfo
生成的文件所在的标准目录。
mhss <jijingzhisheng@up369.com>
[中国 Linux 论坛 man
手册页翻译计划]
http://cmpp.linuxforum.net
跋
本页面中文版由中文
man 手册页计划提供。
中文 man
手册页计划:https://github.com/man-pages-zh/manpages-zh