tzdata数据库到底如何使用?


10

不同的操作系统似乎对夏时制(DST)的处理方式不同。我真的很喜欢Cisco IOS方法,该方法非常简单,可以更改DST开始和结束的日期和时间。例如:

clock summer-time EDT recurring 2 Sun Mar 2:00 1 Sun Nov 2:00 60

在三月第二周的周日2:00提前60分钟,在十一月的第一个周日2:00提前60分钟。Linux如何处理DST?我知道有一个tzdata包含时区数据文件的软件包,这些文件已安装到/usr/share/zoneinfo/目录中。这些文件如何以及通过哪些实用程序使用?我可以看到文件中的UTC(2)和时区名称(EET和EEST)之间的变化:

T60:~# strings /usr/share/zoneinfo/posix/Europe/Helsinki
TZif2
    HMT
EEST
TZif2
EEST
EET-2EEST,M3.5.0/3,M10.5.0/4
T60:~# 

另外,M3大概是第三个月,M10是第十个月?此外,还应在某处指定偏移量。例如,在IOS中,可以配置为DST发生后,时钟偏移例如90或120分钟而不是60分钟。

Answers:


4

如果您查看有关TZ数据库Wikipedia页面

摘抄

档案格式

tz数据库以一组文本文件的形式发布,这些文本文件以人类可读的格式列出了规则和区域转换。为了使用,这些文本文件被编译为一组与平台无关的二进制文件-每个时区一个。参考源代码包括称为zic(区域信息编译器)的编译器,以及用于读取这些文件并在标准API(例如localtime()和mktime())中使用它们的代码。

进行了其他搜索,以查找关于stackoverflow的问题,标题为:Timezone数据库文件格式问题,其中包含有关文件格式的其他信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.