2010-09-01 42 views
1

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

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

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

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

TIA 麦克

回答

0

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

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

相关问题