2

我们使用“America/New_York”约定让用户选择时区,但在我们的资源受限系统中,我们必须手动提供实际的 TZ 变量。例如,对于纽约,我们有:

timezones["America/New_York"] = "EST5EDT,M3.2.0,M11.1.0";

但是,我们发现提供这些环境设置的资源只有美国所有地区的一个子集,我正在尝试构建其余的资源。例如,我需要构建America/Kentucky/LouisvilleAmerica/Boise

是否有此构建的资源,或者可以将 Olson 约定转换为 TZ 环境变量的现有脚本?我用谷歌搜索了一段时间,找不到任何东西(并且对自己实现逻辑感到紧张)。

TIA 迈克

4

1 回答 1

1

每个时区的描述通常存储在/usr/share/zoneinfo(例如/usr/share/zoneinfo/America/Kentucky/Louisville)下的文件中。tzfile (5)手册页描述了这些文件的结构。

请注意,这些文件包含根据日期使用的不同规则,以说明每个时区时间规则的过去和未来的政治变化(所以你不能只说“给我字符串America/Kentucky/Louisville”,你必须说“给我 的字符串America/Kentucky/Louisville,自 2010 年 9 月 2 日起有效”)。

于 2010-09-02T01:03:04.220 回答