use*_*797 2 time timezone nodatime
我们想在我们的网站上将Windows时区转换为OLSON时区.但是,OLSON时区的问题在于它们使用大陆来命名而不是国家名称,例如:
America/New_York
Asia/Kolkata
...
Run Code Online (Sandbox Code Playgroud)
我不认为我们的任何客户都希望他/她必须输入一个大陆名称才能找到一个正确的时区 - 并且时区列表比Windows中使用的要大得多 - 几乎一千个.例如,即使客户发现他必须输入大陆名称,Asia他也必须在数百个时区搜索所有亚洲国家.从可用性的角度来看,这是非常糟糕的.
是否有任何数据库可以将OLSON/IANA时区名称映射到乡村风格的名称,例如:
America/New_York -> New York, USA
Asia/Kolkata -> Kolkata, India
Run Code Online (Sandbox Code Playgroud)
简而言之,没有乡村风格名称的供应商.如果你想要这个,那就取决于你的努力.答案很长:IANA-TZDB被划分为区域,而不是国家,因此是标识符的特殊形式(大陆/城市).从理论文件:
tz数据库不记录区域的边界,并且在许多情况下边界是未知的.例如,美国/肯塔基州/路易斯维尔区代表路易斯维尔市周围的一个地区,其边界尚不清楚.
在政治变革的情况下保持强势.这减少了更新和向后兼容性黑客的数量.例如,通常不使用国家名称,以避免在国家更改名称(例如扎伊尔 - >刚果)或地点改变国家(例如香港从英国殖民地到中国)时不相容.
可以在此文件中读取更多详细信息.tzdb的管理员已经表示希望减少区域标识符的数量并避免所有政治问题远离tzdb,特别是2013年9月在IANA邮件列表上的激烈争论.遵循国家边界的标识符往往不具有政治稳定性.