如何使用 moment.js 将“2017-07-27T08:02:17+0200”转换为本地日期时间和时区

How to convert "2017-07-27T08:02:17+0200" to local date-time and zone using moment.js

如何使用 moment.js 将 "2017-07-27T08:02:17+0200" 转换为本地日期时间和时区?

这里08:02:17是hour:minute:second,+0200是时区。我当地的时区是 GMT+6。我想将该日期转换为我的本地日期时间和区域。到目前为止我已经试过了:

moment.utc('2017-07-27T08:02:17+0200','YYYY-MM-DDThh:mm:ssZZ').local()

但它返回 Invalid Date moment.js

如前所述here

By default, moment parses and displays in local time.

您的输入字符串包含 UTC 偏移量,因此您可以简单地使用 moment(String, String).

请注意,如前所述here

Moment's string parsing functions like moment(string) and moment.utc(string) accept offset information if provided, but convert the resulting Moment object to local or UTC time.

所以没必要用local().

var m = moment('2017-07-27T08:02:17+0200', 'YYYY-MM-DDTHH:mm:ssZZ')
console.log(m.format());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

对于本地时刻本身就可以了,但是,如果你想要一个特定的时区,你可以使用带有位置名称的 tz 方法(如 Moment Timezone 中定义的):

moment.tz("2017-07-27T08:02:17+0200", "America/Toronto").format();