技术科普

时区命名规则解析

在计算机系统中,时区常用“Asia/Shanghai”这样的名称表示。这种命名方式有什么规则?

命名格式

IANA 时区名称采用“区域/城市”的格式,例如:

  • Asia/Shanghai — 中国上海
  • America/New_York — 美国纽约
  • Europe/London — 英国伦敦
  • Australia/Sydney — 澳大利亚悉尼
  • Africa/Cairo — 埃及开罗

为什么用城市名

早期时区命名使用地理区域,但为了兼顾历史和政治,最终采用“区域 + 代表城市”的方式。区域一般是大洲名(亚洲、欧洲、美洲等),城市则是该时区的代表性地点。

比UTC偏移更精确

与单纯写“UTC+8”相比,时区名称的优势在于:

  • 自动处理夏令时:如 America/New_York 会自动区分 EST 和 EDT。
  • 避免歧义:不同地区可能有相同的缩写(如 CST)。
  • 包含历史信息:能追溯该地区过去的时区规则。

一些特殊的名称

有些时区名称并不直观,例如 Etc/GMT、Etc/UTC 表示标准偏移时区;America/Argentina/Buenos_Aires 使用多层结构。此外,某些国家虽然全国使用一个时区,但数据库仍保留多个城市名。

实用提示

开发涉及时间的应用时,应优先使用 IANA 时区名称而非数字偏移,这样更能应对夏令时和时区变更。仓鼠时间网的城市页面都会标注对应的 IANA 时区名称。