![是否计划将 Olson 数据库中的 TZ 纳入 POSIX 中的“日期”?](https://linux22.com/image/173290/%E6%98%AF%E5%90%A6%E8%AE%A1%E5%88%92%E5%B0%86%20Olson%20%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%E7%9A%84%20TZ%20%E7%BA%B3%E5%85%A5%20POSIX%20%E4%B8%AD%E7%9A%84%E2%80%9C%E6%97%A5%E6%9C%9F%E2%80%9D%EF%BC%9F.png)
有一种更简单的方法来定义时区的值,奥尔森数据库。
它一直支持 19 年 (Paul Eggert)Solaris、HP-UX 和 Tru64。
正如第一个链接所示,AIX 当然支持它。和所有 BSD 的。
但 POSIX 中却没有提及。
很简单:
TZ=America/New_York
它更好,因为它不受 DST 变化的影响。并考虑到不同年份的夏令时变化。
$ TZ="America/New_York" faketime "Sun Mar 10 03:00:00 2012" date &&
> TZ="America/New_York" faketime "Sun Mar 10 03:00:00 2013" date
Sat 10 Mar 2012 03:00:00 AM EST
Sun 10 Mar 2013 03:00:00 AM EDT
有关的:
答案1
据我所知,还没有这样的计划;没有开放的错误奥斯汀集团错误跟踪器参考时区数据库,它还没有在邮件列表中讨论过,也没有出现在会议纪要中。
POSIX 在 2019 年进行了改进,纳入了 Olson 数据库中的一项功能,时间超出了 0-24 范围;看错误 1252了解详情。
严格来说,据我了解,应使用TZ=:...
;请求 Olson 条目。TZ
以冒号开头的值被指定为实现定义的。
答案2
我记得电话会议里有过相关的较长时间的讨论。
已经讨论过是否应该包括 olson 数据库。由于数据库的复杂性,无法找到包含规范副本或引用该规范的协议。
因此,基于 olson 的方法仍然是超出范围的允许扩展。