google-maps - 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”。
人们可能会说,有一个你需要的清单!
不幸的是,这份清单毫无用处。
例如,如果我查询纽约,我可以获得如下数据。
{
"dstOffset":3600,
"rawOffset":-18000,
"timeZoneId":"America\/New_York",
"timeZoneName":"Eastern Daylight Time"
}
但是,在 xml 文件中,没有“America/New_York”。取而代之的是“America/New_York US/Eastern”。
那不是唯一标识符。
总之,我的问题是时区 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 标识符,就像谷歌地图一样,就像许多其他应用程序、框架、编程语言和操作系统一样。但是,它并不权威。
推荐阅读
- php - wp_schedule_single_event 挂钩未触发
- sapui5 - 使用 Jacob 识别多个 sap 窗口会话
- mapbox - 将点(或 PointLike)转换为 LngLat 对象
- javascript - 创建基于 Express 的服务器时未找到 server.html
- android - 使用 React Native 在 android 中选择 .png 图像时始终显示黑色背景
- python - CNN框不能超过原始图像尺寸错误
- javascript - 无法在 React.js 中使用 useState 进行渲染
- javascript - 如何在使用 JavaScript 保存图像的同时清除图像?
- flutter - 我如何存储到列表和地图?
- flutter - 为什么设置器的值是用 = 而不是通过 ( )