javascript - 如何更改日期对象的时区

标签 javascript reactjs frontend momentjs

我正在使用 moment 来设置/更改日期对象的时区,而不是任何其他日期/时间值

这就是我目前正在做的事情:

const moment = require("moment-timezone");
const dateNew = moment.tz(accountDate, "US/Pacific");

这是 accountDate 值:Mon Jul 08 2019 06:05:22 GMT-0400(东部夏令时间)

我想将其更改为:Mon Jul 08 2019 06:05:22 GMT-0700(太平洋夏令时间)

dateNew仍处于EDT时区。

the output of `console.log(dateNew)` is :


Moment {_isAMomentObject: true, _i: Mon Jul 08 2019 06:05:22 GMT-0400 (Eastern Daylight Time), _isUTC: true, _pf: {…}, _locale: Locale, …}
_d: Sun Jul 07 2019 23:05:22 GMT-0400 (Eastern Daylight Time) {}
_i: Mon Jul 08 2019 06:05:22 GMT-0400 (Eastern Daylight Time) {}
_isAMomentObject: true
_isUTC: true
_isValid: true
_locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", ordinal: ƒ, _dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, …}
_offset: -420
_pf: {empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -2, charsLeftOver: 0, …}
_z: Zone {name: "US/Pacific", abbrs: Array(186), untils: Array(186), offsets: Array(186), population: 15000000}
__proto__: Object

但是 console.log(new Date(dateNew)) 给出以下输出。

Mon Jul 08 2019 06:05:22 GMT-0400 (Eastern Daylight Time)

请帮忙。谢谢

最佳答案

您确实正在更改时区,一切正常,只需添加一个 format(),我还没有足够的声誉来对此发表评论,哈哈,但是您为什么使用 Date(),只需坚持 moment( )

 const dateNew = moment.tz(accountDate, "US/Pacific").format();
 console.log(dateNew)

关于javascript - 如何更改日期对象的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56939310/

相关文章:

javascript - 在 Typescript 和单元测试中,类型 .. 的参数不可分配给类型 .. 的参数

javascript - 当尝试调用不是/的其他路由时,golang net/http会给出404错误

css - 控制Material-UI中菜单组件的宽度

reactjs - Jest 找到测试但不收集覆盖范围

html - 无法将我的导航栏移动到中心/更改其大小并且页面溢出

javascript - 如何将一段css、html和js从一个静态模板复制到另一个?

html - 在html中格式化标题

javascript - Angular JS (1.2.26) 在 forEach 循环中 promise

javascript - Shelljs exec() 不执行变量

javascript - Node JS 无法读取未定义的属性 'length'