首页 > 解决方案 > Google Timezone API 的时区 id 是什么意思?

问题描述

我正在为全世界的人们开发预订应用程序。因此,我们需要基于时区的时间选择器,并选择了 Google Timezone API 来实现它。

根据 Google 文档,他们提供了特定位置的时区 ID。

但是,我无法获得时区列表的信息。他们只是建议一个 xml 文件,如下所示。

timeZoneId:包含时区ID的字符串,例如“America/Los_Angeles”或“Australia/Sydney”。这些 ID 由 Unicode Common Locale Data Repository (CLDR) 项目定义,目前在文件 timezone.xml 中可用。当一个时区有多个 ID 时,将返回规范的 ID。在 timezone.xml 中,这是每个时区的第一个别名。例如,返回“Asia/Calcutta”,而不是“Asia/Kolkata”。

timezone.xml 的链接

人们可能会说,有一个你需要的清单!

不幸的是,这份清单毫无用处。

例如,如果我查询纽约,我可以获得如下数据。

{
   "dstOffset":3600,
   "rawOffset":-18000,
   "timeZoneId":"America\/New_York",
   "timeZoneName":"Eastern Daylight Time"
}

但是,在 xml 文件中,没有“America/New_York”。取而代之的是“America/New_York US/Eastern”。

那不是唯一标识符。

总之,我的问题是时区 ID 的含义是什么。

值(时区 ID)标准是否已知(如 ISO)?如果是,请告诉我它在哪里。

标签: google-mapstimezone

解决方案


这些是 IANA 时区标识符。读:

您引用的 XML 文件是Unicode CLDR 项目的一部分。它使用IANA TZ 标识符,就像谷歌地图一样,就像许多其他应用程序、框架、编程语言和操作系统一样。但是,它并不权威。


推荐阅读