gpt4 book ai didi

node.js - 时区或位置与 UTC 的偏移量

转载 作者:太空宇宙 更新时间:2023-11-03 23:24:13 26 4
gpt4 key购买 nike

我需要可以将时区转换为 utc 偏移量的库。我有美国城市列表,我知道他们的区域(太平洋标准时间,东部时间......)和位置。所以我的策略可以是

  • library.getOffset('城市位置')
  • myLibraryOrOtherLibrary.getOffset('EST')

我知道图书馆 moment.js 。但是图书馆并不支持所有美国城市,如下所示

    moment().tz("America/Los_Angeles").format();

我应该自己实现一些东西还是有其他库或者我可以以其他方式使用 moment.js ?

最佳答案

一些事情:

  • 您无法仅从缩写获取时区或偏移量,因为存在诸如CST之类的歧义。可能是 -5、-6 或 +8,具体取决于您的解释方式(“中部标准时间”、“古巴标准时间”、“中国标准时间”)。

  • 您也无法仅从城市名称获取时区或偏移量,因为世界各地不同地点有许多具有相同名称的城市。例如,Paris可能意味着法国巴黎,也可能意味着美国德克萨斯州巴黎,或者 any of the other places called Paris 。对于不同的语言,您还可能会得到不同的城市拼写,具体取决于城市,例如乌克兰首都的拼写为 Kiev英语和 Kyiv乌克兰语。

  • Moment支持IANA time zone identifiers的标准列表。它们并不是世界上所有的城市,而是有时基于主要城市名称的特定字符串。有很多异常(exception)。

最终,解决此问题的最佳方法是分两步:

  1. 解析您的位置以获取近似的纬度和经度坐标。这称为地理编码,有许多可用的 API 和数据库可以帮助您完成此任务。例如,Google Maps Geocoding API .

  2. 将坐标解析为 IANA 时区标识符。有很多方法可以实现此目的,包括 Google Maps Time Zone API ,以及许多其他列出的in this answer 。然后,您可以将此标识符与 Moment.js 和其他标识符一起使用。

关于node.js - 时区或位置与 UTC 的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46321651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com