我正在为世界各地的人们开发预订应用程序。因此,我们需要基于时区的时间选择器,并选择了谷歌时区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标识符,就像谷歌地图一样,就像许多其他应用程序、框架、编程语言和操作系统一样。然而,它并不具有权威性。