时区的正确命名是什么?

What is the correct nomenclature for timezones?

识别同一时区有不同的方法,不同的程序可以以不同的方式使用它们。我住在威斯康星州,所以我们通常将这里的时区称为 "Central Time." 但我知道 Windows 有一个 Central Standard Time 的注册表项,实际上它实际上由中部标准时间组成(CST) 和中部夏令时 (CDT)。但最近我看到这个时区显示为 America/Chicago.

指代这两个不同标准的正确术语是什么?例如,您将 America/Chicago 识别时区的方式称为什么?那是像 "Standard TZ Info name" 或 "ISO-1234567 timezone name" 还是 "Eggert TZ name" 之类的东西?

那么稍微熟悉一点的 Central Standard Time 呢?您将该语法称为 "Friendly timezone name" 或 "ISO-987654321 timezone name" 或类似的东西吗?谢谢!

时区(例如 "Pacific Time" 或 "France Time")可以用不同的方式格式化:

  • "metazone" 名称,例如 "Pacific Time" 或 "Pacific Standard Time",可应用于一个国家或地区的各个部分国家集团。

  • 基于
  • location(国家或城市)的名称,例如 "Paris Time" 或 "Japan Standard Time" 这些是使用模式(见下文)加上 Country/Region 名称和城市名称构建的。 当 "metazone" 名称不存在时,将使用基于位置的名称作为后备。

  • 原始偏移量,例如"GMT+10:00" 这些是使用模式构建的(见下文)。

对于前两个,每个都有三个选择:

  • 冬季(标准)时间,例如"Atlantic Standard Time"
  • 夏令时,例如"Atlantic Daylight Time"
  • 通用时间,例如"Atlantic Time"。这用于在夏季和冬季之间变化的重复时间(例如在日历程序中)。

没有确切的命名标准,但这里有一些准则:

  • America/Chicago 这样的时区通常被称为 "Olson Time Zones"、"IANA Time Zones" 或 "TZ Database Time Zones"。有一些关于数据库历史的背景 on Wikipedia 解释了其中的一些。

    • "IANA Time Zones" 可能是目前最正确的形式,因为该项目现在由 IANA.

    • 管理
    • 有时,您会听到使用它们的语言引用它们,如 "PHP Time Zones" 或 "Java Time Zones"。这通常是由于对实现缺乏了解,我不鼓励使用这些名称。

  • Windows 注册表中的时区通常称为 "Microsoft Time Zones" 或 "Windows Time Zones"。

    • 我实际上鼓励称它们为 "Legacy Windows Time Zones",因为 IANA 时区正在慢慢进入 Windows,例如 WinRT 类: Windows.Globalization.Calendar and Windows.Globalization.DateTimeFormatting.DateTimeFormatter.

    • 根据它们在 .NET Framework 中的用法,我有时会听到它们被称为“.NET 时区”或 "TimeZoneInfo Time Zones",但我不鼓励这种命名方式。

    • 不要注意 Windows 时区标识符的命名约定。他们无处不在。

the 'timezone' tag wiki.

中也介绍了其中一些内容

哦,既然我们在谈论命名,那就是 "time zone"(两个词),而不是 "timezone"。 :)