这个问题与 tzinfo 又名 Olson 时区数据库中的标准时区列表有关。
示例 1:我注意到使用 America/New_York 或 America/Detroit(称为“范例城市”,请参阅http://www.w3.org/International/docs/timezones/#tzids)而不是 US/Eastern。
示例 2:在加拿大,山区时区通常被描述为 America/Edmonton,而不是 Canada/Mountain。不列颠哥伦比亚省的部分地区采用山地时间,但其时区指定为美洲/埃德蒙顿(位于艾伯塔省)。
在这些情况下,为什么要使用地区/示范城市选项而不是国家/地区版本?首先创建国家/地区版本肯定是有原因的,但如果它不是首选方式,为什么还要创建它呢?
当一个国家拥有多个时区时,这主要是一个问题。
是否有最佳实践说明为什么其中一种优于另一种?
(PS,这对谷歌来说是一个困难的问题,因为你得到的都是不相关或无帮助的结果。我能找到的最接近的是夏令时和时区最佳实践,但它没有解决这个问题。)
编辑:2 个时区可以代表 1 个城市吗?“因为并不是每个人都使用规范的大陆/城市表示法来表示他们的时区(例如,我倾向于使用旧的美国/太平洋表示法 - 它仍然受支持,但相当于 America/Los_Angeles)。” 他关于“美国/太平洋”较旧的说法与我认为它较新的间接假设相矛盾,但仍然不是答案。
Theory与 Olson 数据库一起分发的文件包含以下信息:
时区规则文件命名约定尝试在以下目标之间取得平衡:
\n\n唯一地标识自 1970 年以来时钟一致的每个国家地区。这对于预期用途至关重要:保持当地民用时间的静态时钟。
向人类指示该区域在哪里。这简化了[原文如此]的使用。
在政治变化面前保持稳健。这减少了\n更新和向后兼容性攻击的数量。例如,\n通常不使用国家/地区名称,以避免\n当国家/地区更改名称时\n(例如扎伊尔\xe2\x9f\xb6Congo)或位置更改国家/地区时\n(例如香港从英国殖民地变为中国)时出现兼容性问题。
可移植到多种实现。\n这促进了该技术的使用。
在全世界使用一致的命名约定。\n这简化了使用和维护。
此命名约定不适合没有经验的用户自己选择 TZ 值(尽管他们当然可以检查并重用现有设置)。分销商应提供\n文档和/或一个简单的选择界面来解释\n名称;请参阅此发行版附带的“tzselect”程序\n示例。
\n\n名称通常采用 AREA/LOCATION 形式,其中 AREA 是大陆或海洋的名称,LOCATION 是该区域内特定位置的名称。北美洲和南美洲共享同一个区域“美洲”。典型名称为“非洲/开罗”、“美国/纽约”和“太平洋/檀香山”。
\n\n以下是选择位置名称的一般规则,\按重要性降序排列:
\n\n/)。在文件名组件中,\n 仅使用 ASCII 字母“ ” .、“ -”和“ _”。不要使用\n 数字,因为这可能会导致 POSIX\n TZ 字符串产生歧义。文件名组成部分不得超过 14\n 个字符或以“ -”开头。例如,更喜欢“Brunei”\n 而不是“Bandar_Seri_Begawan”。_' 代表空格。.名称缩写中的 ' ',例如,更喜欢 'St_Helena'\n 而不是 'St._Helena'。backward。该文件zone.tab列出了用于命名\n时区规则文件的地理位置。它旨在成为地理区域规范名称的详尽列表。\n
请注意,最近(2012 年 8 月)邮件列表上出现了tz@iana.org关于“上海优先于北京”准则的争议。