【问题标题】:Convert date string to date with timezone using moment timezone js使用时刻时区 js 将日期字符串转换为带有时区的日期
【发布时间】:2019-03-04 13:04:50
【问题描述】:

我需要将日期字符串转换为 PDT(太平洋夏令时间),并且必须以当地时间显示。

我试过了

console.log(moment.tz("16:23:42 Sep 27, 2018 PDT", 'HH:mm:ss MMM DD, YYYY PDT',"PDT").format());

当我运行上面的代码时,它会显示

2018-09-27T16:23:42Z

这不是当地时间。其等效的当地时间必须不同。如何获取指定日期字符串的当地时间。

也就是说,我的意思是这样说https://forums.asp.net/t/1552114.aspx?Convert+Datetime+String+from+PDT+to+IST+local+time+datetime+string

【问题讨论】:

    标签: javascript date datetime momentjs moment-timezone


    【解决方案1】:

    你可以试试这个,我认为它会工作

    首先获取时区偏移量timeZoneId 是您的时区。

    const offset =  moment['tz'](moment(new Date()), timeZoneId).utcOffset() * 60000;
    

    其次根据您的日期和偏移量创建新日期

    console.log(new Date(new Date(yourDateString).getTime() + offset))
    

    是的,yourDateString 是您的日期字符串,更适合日期 obj,但 w/e

    【讨论】:

      【解决方案2】:

      你可以这样做:

      var desiredFormat = "HH:mm:ss MMM DD, YYYY";
      var timeToBeConverted = moment("16:23:42 Sep 27, 2018", desiredFormat);
      var timeZone = "America/Los_Angeles";
      
      console.log(timeToBeConverted.tz(timeZone).format(desiredFormat) + " PDT");
      

      您提供的时区不能是“PDT”。如果您在控制台中使用moment.tz.names(),您将获得有效时区名称的列表。在上面的示例中,我使用了“America/Los_Angeles”,但任何观察 PDT 的区域都可以。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-24
        • 2017-10-31
        • 2017-07-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多