将 Olson 时区文件转换为 TZ 环境变量
我们使用“America/New_York”约定让用户选择时区,但在我们的资源有限的系统中,我们必须手动提供实际的 TZ 变量。例如,对于纽约,我们有:
timezones["America/New_York"] = "EST5EDT,M3.2.0,M11.1.0";
但是,我们发现提供这些环境设置的资源只有美国所有区域的一个子集,我正在尝试构建其余的资源。例如,我需要构建 America/Kentucky/Louisville 和 America/Boise。
是否有此构建的资源或现有脚本可以将 Olson 约定转换为 TZ 环境变量?我用谷歌搜索了一段时间,找不到任何东西(并且对自己实现逻辑感到紧张)。
TIA 麦克风
We are using the "America/New_York" convention for the user to select the timezone, but in our resource constrained system, we must manually provide the actual TZ variable. For example, for New York, we have:
timezones["America/New_York"] = "EST5EDT,M3.2.0,M11.1.0";
However, the resource we found to provide these environment settings only had a subset of all the US regions, and I'm trying to construct the remaining ones. For example, I need to build America/Kentucky/Louisville and America/Boise.
Is there resource with this built, or an existing script which can convert the Olson conventions to TZ environment variables? I've googled for a while, and can't find anything (and am nervous about implementing the logic myself).
TIA
Mike
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
每个时区的描述通常存储在
/usr/share/zoneinfo
下的文件中(例如/usr/share/zoneinfo/America/Kentucky/Louisville
)。 tzfile(5) 人页描述了这些文件的结构。请注意,这些文件包含根据日期使用的不同规则,以考虑每个时区时间规则的过去和未来的政治变化(因此您不能只是说“给我美国/的字符串” Kentucky/Louisville”,您必须说“给我
America/Kentucky/Louisville
的字符串,有效期截至 2010 年 9 月 2 日”)。The descriptions of each timezone are usually stored in files under
/usr/share/zoneinfo
(eg./usr/share/zoneinfo/America/Kentucky/Louisville
). The tzfile(5) man page describes the structure of these files.Note that the files contain different rules to be used depending on the date, to account for past and future political changes to the time rules for each time zone (so you can't just say "give me the string for
America/Kentucky/Louisville
", you have to say "give me the string forAmerica/Kentucky/Louisville
, valid as at 2-September-2010").