从 posix 时区表达式创建编译的 TZ 数据库

从 posix 时区表达式创建编译的 TZ 数据库

我想从 posix 表达式创建一个已编译的 TZ 数据库文件。

是否有任何 unix 实用程序可以根据 posix 表达式创建 TZ 数据库?

我确实检查了 zic 命令,但我找不到提供 posix 表达式规则作为 zic 输入的方法。有没有办法将 posix 表达式与 zic 一起使用?例如 EST5EDT、M10.3.0、M2.3.0

我需要编译的数据库,因为我希望时区在所有会话中保持不变,以便 /etc/localtime 可以链接到编译的数据库。

直接将 TZ 变量设置为 posix 表达式不会有帮助,因为它在重启后也不会在会话中持久存在。

答案1

不,这是不可能的。

POSIX 规则只能解释当前的规则,并且只能包含一对 DST 转换。

tz 数据库包含如下条目America/New_York,它们占全部该时区统治着特定时区的整个历史。

时区的实际情况非常复杂,包括以下内容:

  • 夏令时每年转换两次
  • 夏令时转换一年内
  • 基准偏移量在特定年份发生一次变化
  • 其中许多规则每年都会发生变化,有些规则每年都会有所不同

更多StackOverflow 上的时区标签 wiki

相关内容