谷歌时区API的时区id是什么意思



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

根据谷歌文档,他们提供了特定位置的时区id。

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

timeZoneId:包含时区ID的字符串,如"America/Loss_Angeles"或"Australia/Sdney"。这些ID由Unicode Common Locale Data Repository(CLDR(项目定义,目前在文件timezone.xml中可用。当一个时区有多个ID时,会返回规范的ID。在timezone.xml中,这是每个时区的第一个别名。例如,返回的是"亚洲/加尔各答",而不是"亚洲/Kolkata"。

timezone.xml 的链接

人们可能会说你需要一份清单!

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

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

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

但是,在xml文件中,没有"America/New_York"。取而代之的是"美国/纽约美国/东部"。

这不是唯一的标识符。

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

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

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

  • https://www.iana.org/time-zones
  • https://en.wikipedia.org/wiki/Tz_database
  • https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
  • https://stackoverflow.com/tags/timezone/info

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

最新更新