Zh-hans:Key:timezone

From OpenStreetMap Wiki
Jump to navigation Jump to search
timezone
说明
指明某对象的 IANA 时区别名。 编辑此说明
组: properties
用于这些元素
不可用于节点可用于路径不可用于区域可用于关系
状态:使用中
本页面由 AI 从英文页面翻译而来,内容需要人工复核。

timezone=* 键用于指定适用于某地理要素的时区。它让数据使用方能够确定正确的本地时间,包括夏令时(DST)规则。

它最常用于边界关系,尤其是 boundary=administrative 和 boundary=administrative,此外也较少地用于 place=* 节点。

取值

取值应为 IANA 时区数据库(又称 tz 数据库)中的有效标识符,例如 America/New_York 或 Europe/Brussels。这些标识符表示民用(法定)时间,而不仅仅是 UTC 偏移量;它们自动处理夏令时间,包含历史变更,并得到操作系统、数据库和编程语言的广泛支持。

本键名称中使用的“时区”(time zone)一词可能引起混淆,因为这些并不是真正的时区(即它们既不是像“比 UTC 早 1 小时”这样的时间偏移,也不是“东部时区”或“中欧时间”这类标准时区)。相反,这些标识符指向一组用于计算过去和现在时间的规则。

上下文

IANA 时区数据库是事实上的全球时区权威机构。它由一个国际社群维护,跟踪由法律或法规所规定的官方计时规则。该数据库使用固定写法的地理标识符,多数形式为 Continent/Major_City — 例如 America/New_York、Europe/Amsterdam 和 Asia/Pyongyang。这些标识符代表 tz 数据库记录了当前与历史时区规则及偏移量的区域。计算机广泛使用该数据库把设备关联到正确的时区。当计算机被配置为使用这些标识符时,软件会自动采用正确的时区规则,例如 与 UTC 的偏移量,以及是否实行 夏令时。该数据库也用于在不同时区之间换算历史时间戳。

然而,IANA 数据库并不包含地理边界:它定义了时区标识符及相关规则(UTC 偏移量、夏令时切换),但并未定义时区在地图上适用于何处。由于 IANA 不提供几何数据,OpenStreetMap 实际上成为时区边界的主要开放数据来源。关于设置时区几何数据的理由的更多信息,请参阅 boundary=timezone 页面。

时区几何数据由 timezone-boundary-builder 项目根据 OSM 行政边界及相关数据生成。所得数据集 在实际应用中得到广泛应用。实践中,许多使用方依靠 OSM 导出的几何数据并结合 IANA 规则,来确定某一坐标对应的正确本地时间。

标注指南

数据使用方应能够把带有相同 timezone=* 标签的所有几何数据合并起来,从而得出对应 IANA 时区的整体范围。

请把该标签添加到 admin_level=* 最低且适用于它的行政边界上,例如如果整个国家属于同一 IANA 时区,就添加到国家上。不要冗余地添加该标签,例如不要同时添加到该国的每一个州上。如果一个国家被划分成不同部分,各部分采用不同的时区,则应改为把 timezone=* 键添加到各子区域各自的行政边界上。

请特别注意海外领地等边界情况。例如,法国 关系不应带 timezone=* 标签,因为它代表处于多个不同时区的领土;而 法国本土关系 则标注了 Europe/Paris 时区。

在某些情况下,时区边界并不恰好对应一个或多个行政边界,这时就需要一个 boundary=timezone 关系。例如,时区边界可能独立于其他边界,沿道路、河流、铁路或测绘线延伸。

不建议使用 UTC+1 或 GMT+2 之类的固定偏移量,因为它们不支持夏令时间,也会失去历史准确性。

说明

  • IANA 时区是由规则集和历史行为定义的,而不仅仅依据当前的时钟时间。这经常导致这样的局面:多个标识符目前采用相同时间却仍彼此有别。例如 Europe/Berlin(代表德国)、Europe/Brussels(代表比利时)和 Europe/Busingen(代表 Büsingen am Hochrhein,这个被瑞士包围的德国飞地,历史上遵循瑞士的计时规则)。它们之所以分开,是为了对历史和法律上的边缘情况进行建模,尽管它们目前都采用相同时间。
  • 截至 2026 年 1 月,关于时区标注的未来(例如键名,以及当 IANA tz 数据库的不同版本对同一时区定义不一致时应使用哪个版本)已有一次 广泛讨论。不建议在未经讨论的情况下进行编辑。

参见