更好的OLSON / IANA时区名称

时间:2013-12-23 21:41:46

标签: time timezone nodatime

我们希望在我们的网站上将Windows时区转换为OLSON时区。但是,OLSON时区的问题在于它们使用大陆来命名而不是国家名称,例如:

America/New_York
Asia/Kolkata
...

我认为我们的任何客户都不希望他/她必须输入大陆名称才能找到正确的时区 - 并且时区列表比Windows中使用的要大得多 - 几乎千。即使客户发现他必须输入大陆名称,例如Asia,他也必须在数百个时区搜索所有亚洲国家。从可用性的角度来看,这是非常糟糕的。

是否有任何数据库可以将OLSON / IANA时区名称映射到乡村风格的名称,如:

America/New_York -> New York, USA
Asia/Kolkata -> Kolkata, India

1 个答案:

答案 0 :(得分:5)

简短回答,没有乡村风格名称的供应商。如果你想要这个,那就取决于你的努力。答案很长:IANA-TZDB被划分为区域,而不是国家,因此是标识符的特殊形式(大陆/城市)。来自theory file

  • tz数据库不记录区域的边界,并且在许多区域中 情况边界是未知的。例如,区域 美国/肯塔基州/路易斯维尔代表着该市周边地区 路易斯维尔,其边界尚不清楚。

  • 在政治变革的情况下保持健康。这减少了 更新次数和向后兼容性黑客。例如, 通常不使用国家名称,以避免 当各国改名时不相容 (例如扎伊尔 - >刚果)或地点改变国家 (例如香港从英国殖民地到中国)。

可以在此文件中读取更多详细信息。 tzdb的管理员已经表示希望减少区域标识符的数量并且远离tzdb的所有政治问题,特别是2013年9月IANA邮件列表上的激烈辩论。遵循国家边界的标识符往往不具有政治稳定性。