我发现了一个从 glibc 到 uclibc 的时区字符串的映射文件。看起来像这样:
非洲/阿比让=GMT0
非洲/阿克拉=GMT0
非洲/亚的斯亚贝巴=EAT-3
非洲/阿尔及尔=CET-1
...
这个文件相当老了(4 年),并且 glibc 上添加了几个新的时区。但是,我找不到最新的映射文件。映射文件有 451 个条目,而目前支持的时区字符串总数超过 900 个。是否有更新的映射文件?
根据您提供的数据,左侧似乎是 IANA/Olson 时区标识符。 您可以在 Wikipedia 上看到这些区域及其偏移量的粗略列表。 右侧似乎是时区缩写和该时区的
standard偏移量,其符号是倒置的。 这可能是 POSIX 风格的时区字符串。 我无法判断,因为你只提供了一小部分样本。 您可以在
时区标签维基中阅读有关这两个内容的更多信息。 请务必阅读 POSIX 时区的限制。 一些搜索发现
this thread他们讨论 uclibc 仅支持 POSIX 时区。 如果您使用的是 buildroot,您可以查看“tzdata”包是否适合您,但我不确定它是否适合您。 如果是这样,您将像 glibc 一样使用它,通过 TZ 变量 设置(请参阅页面底部的最后一个选项)。 就将 IANA 映射到 POSIX 区域而言 - 您拥有的任何列表都将仅限于
当前时区规则,但仍然不一定涵盖所有内容。 只有 IANA 区域是全面的。 它也将是一种单向映射。 你不能走另一个方向。 我进行了搜索,但没有找到此映射的直接来源。 如果你找到了,请告诉我。
示例导出 TZ='亚洲/上海' 或者 导出 TZ='CST-8'