Moment.js / moment-timezone:使用“GMT-06:00”类型日期格式化日期

Roh*_*acu 0 javascript datetime momentjs reactjs

我正在尝试解析使用 moment.js 创建的日期,并使用从此类 API 响应获取的时区:

{
  "id": "MX",
  "name": "Mexico",
  "time_zone": "GMT-06:00"
}
Run Code Online (Sandbox Code Playgroud)

我在 React 中创建了一个 moment 对象,但我需要将其时区更改为 API 获取的时区,在本例中为“GMT-06:00”。

为此我有这个功能:

setDateTimezone(date) {
    let timezone = this.state.siteData.time_zone;
    return moment(date).tz(timezone).format();
  }
Run Code Online (Sandbox Code Playgroud)

它接收一个 moment 对象并用 tz 更改它的时区。

但是,这会返回以下错误:

Moment Timezone 没有 GMT-06:00 的数据。

我需要以某种方式将 API 时区格式解析为 Moment 接受的格式,并使用这个新时区创建一个新的 moment 对象。

非常感谢您抽出宝贵的时间,祝您有愉快的一天。

Mat*_*int 5

为此,您不需要时刻时区。只需使用utcOffsetMoment 的功能即可。它会忽略这些字母,所以你可以这样做:

moment(date).utcOffset('GMT-06:00').format()
Run Code Online (Sandbox Code Playgroud)