我们想在我们的网站上将windows时区转换为OLSON时区。然而,OLSON时区的问题是,它们使用大陆来命名,而不是国家名称,例如:
America/New_York
Asia/Kolkata
...
我不认为我们的任何客户会期望他/她必须输入大陆名称才能找到正确的时区——时区列表比窗口中使用的要大得多——几乎有数千个。即使客户发现他必须输入大陆名称,例如Asia
,他也必须在数百个时区中搜索所有亚洲国家。从可用性的角度来看,这是非常糟糕的。
有没有数据库可以将OLSON/IANA时区名称映射到国家风格的名称,如:
America/New_York -> New York, USA
Asia/Kolkata -> Kolkata, India
简而言之,没有国家风格名称的供应商。如果你想要这个,那取决于你的努力。长话短说:IANA-TZDB被划分为地区,而不是国家,因此是标识符的特殊形式(大陆/城市)。来自理论文件:
-
tz数据库不记录区域的边界,在许多情况下在不知道边界的情况下。例如,区域美国/肯塔基州/路易斯维尔代表路易斯维尔,其边界尚不清楚。
-
在政治变革面前保持稳健。这减少了更新次数和向后兼容性破解。例如通常不使用国家名称,以避免国家更改名称时的不兼容性(例如扎伊尔->刚果)或当地点改变国家时(例如从英国殖民地到中国的香港)。
可以在该文件中阅读更多详细信息。tzdb的管理员表示希望减少区域标识符的数量,并将所有政治问题排除在tzdb之外,尤其是2013年9月关于IANA邮件列表的激烈辩论。遵循国家边界的身份识别者往往在政治上不稳定。