时区文件格式标准:https://datatracker.ietf.org/doc/html/rfc8536
1. NAME(名)
tzfile - 时区文件。(非文本文件)
2. DESCRIPTION(描述)
本页介绍被 tzset(3) 函数使用的时区文件的结构。这些文件通常位于 /usr/lib/zoneinfo 或 /usr/share/zoneinfo 目录下。
时区文件头
时区文件以44字节的头开始:
- 4字节,魔法字符串 “TZif” 将其标识为时区信息文件(本文简称时区文件)。
- 1字节,标识文件格式版本的单个字符:ASCII NUL(“\0”)或 “2”(0x32)。
- 15字节,全零,保留以备将来使用。
- 24字节,6个 long 类型的4字节值,按“标准”字节顺序写入(值的高字节先写入)。这些值依次为:
① tzh_ttisgmcnt
存储在文件中的 UTC/local 指示器的数量。
② tzh_ttisstdcnt
存储在文件中的 standard/wall 指示器的数量。
③ tzh_leapcnt
存储在文件中的数据的闰秒数。
④ tzh_timecnt
将数据存储在文件中的 “transition time” 数。
⑤ tzh_typecnt
文件中存储数据的“local time types”的数量(不得为零)。
⑥ tzh_charcnt
文件中存储的“timezone abbreviation string ”的字符数。
上面的标题后面跟着tzh_timecnt四个字节的值,类型为long,按升序排序。这些值以“标准”字节顺序写入。每个都被用作转换时间(如时间(2)返回的),用于计算本地时间的规则在该转换时间改变。接下来是tzh_timecnt类型为unsigned char的单字节值;每一个都告诉文件中描述的不同类型的“本地时间”类型中的哪一个与相同的索引转换时间相关联。这些值用作文件中下一个出现的ttinfo结构数组(带有tzh_typecnt条目)的索引;这些结构定义如下:
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/。