为什么使用城市时区而不是区域时区用于tzinfo?

时间:2012-08-17 16:32:18

标签: timezone tzinfo

此问题与tzinfo aka Olson Timezone Database中的标准时区列表有关。

示例1:我注意到使用America / New_York或America / Detroit(称为“示例城市”,请参阅http://www.w3.org/International/docs/timezones/#tzids)而不是US / Eastern。

示例2:在加拿大,山区时区通常被描述为America / Edmonton而不是Canada / Mountain。不列颠哥伦比亚省的部分地区位于山区时间,但他们的时区被指定为America / Edmonton(位于阿尔伯塔省)。

在这些情况下,为什么要使用区域/范例城市选项而不是国家/地区版本?首先必须创建国家/地区版本的原因,但如果它不是首选方式,为什么会这样?

当一个国家/地区有多个时区时,这主要是一个问题。

在某个地方是否有最好的做法说明为什么一个人比另一个人更受欢迎?

(对于谷歌来说,这是一个很难的问题,因为你得到了所有不相关或无益的结果。我能找到的最接近的是Daylight saving time and time zone best practices,但它没有解决这个问题。)

编辑:can 2 timezone be for 1 city?有“因为不是每个人都使用规范的大陆/城市符号作为他们的时区(我倾向于使用旧的美国/太平洋符号,例如 - 仍然支持,但相当于到America / Los_Angeles)。“他断言“美国/太平洋地区”的说法与我的间接假设相矛盾,即它更新,但仍然不是答案。

1 个答案:

答案 0 :(得分:2)

随Olson数据库一起分发的Theory文件包含以下信息:

时区规则文件的名称

时区规则文件命名约定尝试取得平衡 在以下目标中:

  • 独特地识别时钟所有的所有国家区域 自1970年以来同意。这对于预期用途至关重要:静态 时钟保持当地的民用时间。

  • 向人类表明该地区的位置。这简化了[ sic ]的使用。

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

  • 可移植到各种实现中。 这促进了该技术的使用。

  • 在整个世界中使用一致的命名约定。 这简化了使用和维护。

此命名约定不适合没有经验的用户使用 自己选择TZ值(虽然他们当然可以检查 并重用现有设置)。经销商应提供 文档和/或简单的选择界面,解释了 名称;请参阅此发行版提供的'tzselect'程序 一个例子。

名称通常具有AREA / LOCATION形式,其中AREA是名称 属于大陆或海洋,LOCATION是特定的名称 该地区内的位置。北美和南美也有同样的看法 地区,'美国'。典型的名字是'Africa / Cairo','America / New_York', 和'太平洋/檀香山'。

以下是用于选择位置名称的一般规则, 按重要性递减顺序:

  • 仅使用有效的POSIX文件名组件(即,部分)     “/”以外的名称。在文件名组件中,     仅使用ASCII字母,“.”,“-”和“_”。不使用     数字,因为这可能会产生与POSIX的歧义     TZ字符串。文件名组件不得超过14     字符或以“-”开头。例如,更喜欢'文莱'     到'Bandar_Seri_Begawan'。
  • 每个国家/地区的每个时区规则集至少包含一个位置。     一个这样的位置就足够了。使用ISO 3166(参见文件     iso3166.tab)帮助决定某个国家是否属于某个国家。     然而,无人居住的ISO 3166地区,如布维岛     不需要地点,因为那里没有定义当地时间。
  • 如果自1970年以来一个国家/地区的所有时钟已经达成一致,     不要打扰包含多个位置     即使分区域的钟表在1970年之前不同意。     否则这些表会变得非常大。
  • 如果名称含糊不清,请使用不太模糊的替代方案;     例如许多城市都被命名为圣何塞和乔治城     喜欢'Costa_Rica'到'San_Jose'和'圭亚那'到'乔治城'。
  • 保持位置紧凑。使用城市或小岛屿,而不是国家     或区域,以便任何未来的时区更改不会拆分     位于不同时区的位置。例如。更喜欢'巴黎'     到'法国',因为法国有多个时区。
  • 使用主流英文拼写,例如喜欢'罗马'到'罗马',和     喜欢'雅典'到真名(使用希腊字母)。     POSIX文件名限制鼓励此规则。
  • 使用一个国家/地区时区中人口最多的地区,     例如喜欢'上海'到'北京'。在哪些地方     相似的人群,选择最知名的位置,     例如喜欢'罗马'到'米兰'。
  • 使用单数形式,例如喜欢'Canary'到'Canaries'。
  • 除非另有说明,否则省略'_Islands'和'_City'等常见后缀     会导致含糊不清。例如。更喜欢'开曼'     'Cayman_Islands'和'危地马拉'到'Guatemala_City',     但更喜欢“墨西哥城市”到“墨西哥”,因为这个国家     墨西哥有几个时区。
  • 使用“_”代表空格。
  • 从名称缩写中省略'.',例如更喜欢'St_Helena'     到'St._Helena'。
  • 如果只是略有改变,请不要更改已建立的名称     违反上述规定。例如,不要改变     现有名称“罗马”到“米兰”只是因为     米兰的人口增长有所增加     比罗马的。
  • 如果更改了名称,请将其旧拼写放在backward文件中。

文件zone.tab列出了用于命名的地理位置 时区规则文件。它旨在成为一个详尽的清单 地理区域的规范名称。


请注意,tz@iana.org邮件列表上最近有关'上海偏好北京'指南的争议(2012年8月)。