.\" Chinese Version Copyright mhss, www.linuxforum.net, 2000 .TH ZIC 8 .SH NAME zic - 时区编辑器 .SH 总览 .B zic [ .B \-v ] [ .B \-d .I directory ] [ .B \-l .I localtime ] [ .B \-p .I posixrules ] [ .B \-L .I leapsecondfilename ] [ .B \-s ] [ .B \-y .I command ] [ .I filename \&... ] .SH 描述 .if t .ds lq `` .if t .ds rq '' .if n .ds lq \&"\" .if n .ds rq \&"\" .de q \\$3\*(lq\\$1\*(rq\\$2 .. .I Zic 从文件中读取文本输入,文件的名字是用命令行指定的; 然后生成时间转换信息文件,此文件由输入指定。 如果 .I 文件名 是 .BR \- ,从 标准输入中读取。 .PP 可得到以下选项: .TP .BI "\-d " 目录 在指定的目录中生成时间转换信息文件,而不是下面的标准 的目录名。 .TP .BI "-l " 时区 用给定的时区作为本地时间。 .I Zic 对此选项的对待如同在输入中有下面格式的连接行 .sp .ti +.5i 连接 (从) \fI时区\fP (到)本地时间 .TP .BI "-p " 时区 当处理 POSIX 格式的时区环境变量时,使用给定的时区规则。 .I Zic 对此选项的对待如同在输入中有下面格式的连接行 .sp .ti +.5i 连接 (从) \fI时区\fP (到)POSIX规则 .TP .BI "-L " 闰秒文件名 从指定名字的文件中读闰秒信息。 如果不使用本选项,则在输出文件中不出现闰秒信息。 .TP 10 译注: 早期的日期时间度量采用天文方法,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 节。 .TP .B \-v 当出现在数据文件中的年超出了 .IR time (2) 可表示的值的年的范围时提出申诉。 (让用户知道他干不了超出自身能力的事) .TP .B \-s 限定在输出文件中存储的时间值无论被作为有符号或无符号 均是同一个值。你能用此选项生成 SVVS 兼容文件。 .TP 8 译注: 传统 UNIX 使用三十二位有符号整数计数器以秒为单位计 时,以1970年1月1日为零起点,在2038年将溢出,负数可表示到 1901年。Linux 使用三十二位无符号整数计数器以秒为单位计时, 以1970年1月1日为零起点,在2106年将溢出。由此决定了时间值 的范围(至少是在 ANSI C 中)。 引自:现代操作系统/Andrew S. Tanebaum 著。-北京: 机械工业 出版社,1999.11。第 5 章,第 5.4.2 节。 .TP .BI "-y "命令 当检测年的类型时,使用给定的 .I 命令 ,而不是 .B yearistype (见后) .PP 输入行由字段组成。字段之间以白空格字符(空格或 TAB)分隔。 前导和后挂的白空格将被忽略。在输入中的未加引号的 # 号 表示直到其所在行结束的部分是注释。如果要在字段中使用空白和 # 号, 你要把它们用双引号括起来。任何(去除了注释后的)空行将被 忽略。非空行应是以下三种类型之一: 规则行,时区行,连接行。 .PP 规则行的格式 .nf .ti +.5i .ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u .sp Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S .sp 例如: .ti +.5i .sp Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D .sp .fi 组成规则行的字段是: .TP "\w'LETTER/S'u" .B "NAME " 名字 给出此条规则所属的规则集的名字,名字可任意起。 .B "FROM " 从...(年) 给出本规则应用的启始年份。提供的年份可以是任何整数; .B "minimum " 最小 (或其略写)一词的意思是可表示成整数的最小年份。 .B "maximum " 最大 (或其略写)一词的意思是可表示成整数的最大年份。 规则可以描述不能以时间值表示的时间, 但忽略不能以时间值表示的时间, 这允许规则在不同时间值类型的主机之间有可移植性。 .TP .B "TO "到...(年) 给出本规则应用的终止年份。除了上面的 .B 最大 和 .B 最小 , .B "only " 唯一 (或其略写)一词的意思是与 .B FROM 字段有相同的值。 .TP .B "TYPE "类型 给出本规则应用的年份类型。如果 .B TYPE 是 .B \- ,则本规则应用于包含在 .B FROM 和 .B TO 之间的所有年份。如果是其他类型,则 .B Zic 执行下面的命令 .ti +.5i \fByearistype\fP \fIyear\fP \fItype\fP .br 来检测某一年的类型: 退出状态 0 表示此年是给定的类型; 退出状态非 0 表示此年不是给定的类型。 .TP .B "IN "在...(月) 给出本规则有效的月份的名字。月份的名字可用缩写。 .TP .B "ON "在...(日) 给出本规则有效的日期。可识别的日期的格式包括: .in +.5i .sp .ta \w'Sun<=25\0\0'u 5 一个月的第 5 天 lastSun 一个月的最后的星期天 lastMon 一个月的最后的星期一 Sun>=8 一个月的第 8 天以后(含第 8 天)的第一个星期天 Sun<=25 一个月的第 25 天以前(含第 25 天)的最后一个星期天 .fi .in -.5i .sp 星期的名字是可以缩写或全拼。注意在 .B ON 字段中不能有空格。 .TP .B "AT "在...(时间) 给出本规则有效的时间。可识别的时间的格式包括: .nf .in +.5i .sp .ta \w'1:28:13\0\0'u 2 用小时表示的时间 2:00 用小时:分钟表示的时间 15:00 用 24 制小时表示的时间 (表示下午的时间) 1:28:14 用小时:分钟:秒钟表示的时间 .fi .in -.5i .sp 这里午夜 0 点是一天开始, 午夜 24 点是一天结束。 对于任何以上格式,如果给定的时间是本地的 .q "墙钟" 时间,可以后跟字母 .B w ; 如果给定的时间是本地的 .q "标准" 时间,可以后跟字母 .B s ; 果给定的时间世界时间,可以后跟字母 .B u (或 .B g 或 .B z ) 如果没写此种指示符,假定是"墙钟"时间。 .TP 8 译注:例如我的"墙钟"时间是北京时间(GMT+8),我的本地标准时间 是 GMT+9(哈尔滨所在的时区的时间)。 .TP .B "SAVE "补偿 给出当本规则有效时增加到本地标准时间上的时间量。 本字段与 .I AT 字段格式相同(当然,未使用 .B w 和 .B s 后缀)。 .TP .B "LETTER/S "字母 给出当本规则有效时时区缩写的 .q "可变部分" (例如, .q "EST" 中 的 .q "S" 或 .q "EDT" 中的 .q "D" )。如果本字段是 .BR \- ,可变部分是空。 .PP 时区行格式 .sp .nf .ti +.5i .ta \w'Zone\0\0'u +\w'Australia/Adelaide\0\0'u +\w'GMTOFF\0\0'u +\w'RULES/SAVE\0\0'u +\w'FORMAT\0\0'u Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] .sp 例如: .sp .ti +.5i Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 .sp .fi 组成规则行的字段是: .TP "\w'GMTOFF'u" .B "NAME "名字 时区的名称,被作为为时区而生成的时间转换文件的名字。 .TP .B "GMTOFF "GMT-偏移量 为得到本时区的标准时间而应加到 UTC 时间上的时间量。 本字段与规则行的 .B AT 和 .B SAVE 有相同的格式;字段值是负值 (即以负号开始)表示要从 UTC 时间上减去的时间量。 .TP .B "RULES/SAVE "规则/补偿 本时区应用的规则的名字,或者是应加到本地标准时间上的 时间量 。如果本字段是 .B \- ,则本时区总是用标准时间。 .TP .B "FORMAT "格式 本时区的时区缩写的格式。字符对 .B %s 表示时区缩写的 .q "可变部分" 。另外,/ 符号(斜扛) 分隔标准时和夏令时的缩写。 .TP .B "UNTIL "直到 是某个位置的 UTC 偏移量或规则改变的时间。它被指定为 某年某月某日某时。如果指定了本字段,直到指定的时间之 后,才会产生从改变了的 UTC 偏移量和规则生成的时区信息。 某年某月某日某时的格式同于规则中的 IN、ON 和 AT 列; 随后的列可以省略,给未写出的列的缺省值是可能的最早的值。 .IP 下一行必须是一个 .q 接续 的行,就是说,除了字符串 .q Zone 和名字省略了之外,与时区行有一样的格式;接续行在上一行 的 .B UNTIL 字段所指定的时间开始后,按本行的 UTC 偏移量或规 则在上一行名字字段指定的文件中生成时区信息。接续行可以 有象时区行一样的 .B UNTIL 字段,用于指示下一行是自己的接续。 .TP 8 译注:上面的这段绕口令的意思是 zome 输出的时区文件名 规则1 规则2生效时间 规则2 规则3生效时间 规则n .PP 连接行格式 .sp .nf .ti +.5i .ta \w'Link\0\0'u +\w'Europe/Istanbul\0\0'u Link LINK-FROM LINK-TO .sp 例如: .sp .ti +.5i Link Europe/Istanbul Asia/Istanbul .sp .fi .B LINK-FROM 字段的值应是在某个时区行的 .B NAME 名字 字段上出现过; .B LINK-TO 字段是那个时区的可替代的名字。 .PP 除了接续行之外,行可在文件中以任意顺序出现。 .PP 描述闰秒的文件中的行有以下格式: .nf .ti +.5i .ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u .sp Leap YEAR MONTH DAY HH:MM:SS CORR R/S .sp 例如: .ti +.5i .sp Leap 1974 Dec 31 23:59:60 + S .sp .fi 字段 .B YEAR、 .B MONTH、 .B DAY 和 .B HH:MM:SS 说明什么时侯闰秒出现。 .B CORR 字段在应增加一秒时是 .q + ,在应减少一秒时是 .q - 。 在其他字段给出的闰秒时间应被解释为 UTC 时间的情况下, .B R/S 字段应是 S ( .q Stationary 静止一词的缩写);在其他字段给出的闰秒时间应被解释 为本地墙钟时间的情况下, .B R/S 字段应是 R( .q Rolling 滚动一词的缩写)。 .SH 注意 对于有多于两种类型的本地时间的地区,你可能需要用最早变更时 间的规则的 .B AT 字段中的本地标准时间,来确保记录在编译的文件 中的最早变更时间是正确的。 .SH 相关文件 /usr/local/etc/zoneinfo 生成的文件所在的标准目录。 .SH 又见 newctime(3), tzfile(5), zdump(8) .SH [中文版维护人] .B mhss .SH [中文版最新更新] 2000/12/05 .SH "[中国 Linux 论坛 man 手册页翻译计划]" .BI http://cmpp.linuxforum.net .SH "跋" .br 本页面中文版由中文 man 手册页计划提供。 .br 中文 man 手册页计划:\fBhttps://github.com/man-pages-zh/manpages-zh\fR