当前位置:   article > 正文

Linux 时区文件编译器 zic【man 8 zic】

Linux 时区文件编译器 zic【man 8 zic】

1. NAME(名)

zic - 时区编译器

2. SYNOPSIS(概要)

zic [-v] [-d directory] [-l localtime] [-p posixrules] [-L leapsecondfilename] [-s] [-y command] [filename ...]
  • 1

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
  • 1
  • 2
  • 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
  • 1
  • 2
  • 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
  • 1
  • 2

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
  • 1
  • 2

YEAR、MONTH、DAY和HH:MM:SS字段显示闰秒发生的时间。如果添加了一秒钟,CORR字段应为“+”,如果跳过了一秒钟则应为“-”。如果其他字段给出的闰秒时间应解释为UTC,则R/S字段应为 “Stationary” 或其缩写;如果其他字段提供的闰秒应解释为本地挂钟时间,则R/S字段应为 “Rolling” 或其缩写。

4. FILES(文件)

/usr/local/etc/zoneinfo
  • 1

用于创建时区文件的标准目录。

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/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/771806
推荐阅读
相关标签
  

闽ICP备14008679号