【问题标题】:Get timezone from country and state in NodeJS从 NodeJS 中的国家和州获取时区
【发布时间】:2021-04-07 17:51:32
【问题描述】:

因此,根据国家/地区:US 和州:CA 等输入,我需要获取时区。

我在这里看到了这个回复:Get timezone directly from Country and State Google API,但问题是Google API需要经度和纬度,所以我想知道我是否首先需要寻找这些值。有没有直接获取时区的选项?

谢谢

【问题讨论】:

  • 您也有当前时间吗?那么结果应该是 +3 +2 ?
  • 您好,欢迎来到 SO!编辑您的问题以添加您迄今为止尝试过的内容。
  • 嗨,Alex,我有当前时间,但需要转换为 UTC,所以要知道用户时区,我知道数据库中的国家和州。

标签: node.js timezone location


【解决方案1】:

Moment.js 为您提供了一些功能来执行此操作

我已经用npm install moment-timezone安装了它

然后您可以使用 Los_Angeles 在此处获取加利福尼亚的 TimeZone,如下所示

var moment = require('moment-timezone');
moment().tz("America/Los_Angeles").format();

var a = moment.tz("2013-11-18 11:55", "America/Los_Angeles");
var b = moment.tz("2013-11-18 11:55", "America/Toronto");



console.log(a.format()); // 2013-11-18T11:55:00-08:00
console.log(b.format()); // 2013-11-18T11:55:00-05:00

console.log(a.utc().format()); // 2013-11-18T19:55:00Z
console.log(b.utc().format()); // 2013-11-18T16:55:00Z

【讨论】:

  • 这实际上是一个不错的选择,我只是将国家和州的 ISO2 代码转换为长版本。洛杉矶 - 洛杉矶。谢谢,我试试看
【解决方案2】:

检查这个https://momentjs.com/timezone/docs/

var timestamp = 1403454068850,
    date = new Date(timestamp);

moment.tz(timestamp, "America/Los_Angeles").format(); // 2014-06-22T09:21:08-07:00
moment(timestamp).tz("America/Los_Angeles").format(); // 2014-06-22T09:21:08-07:00

【讨论】:

    【解决方案3】:

    你可以使用这个 npm 模块countries-and-timezones

    const ct = require('countries-and-timezones');
         
    const timezone = ct.getCountryForTimezone('Asia/Tokyo');
    console.log(timezone);
     
    

    【讨论】:

    • 有趣的选项,谢谢,不过我错过了一种查找州时区的简单方法,无论如何我会调查更多关于这个包的信息
    猜你喜欢
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    相关资源
    最近更新 更多