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

时间:2017-07-31 15:04:52

标签: javascript datetime momentjs date-conversion localtime

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

此处08:02:17为小时:分钟:秒,+0200为时区。我当地的时区是GMT+6。我想将该日期转换为我的本地日期时间和区域。到目前为止我已经尝试过了:

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

但它正在通过moment.js

返回Invalid Date

2 个答案:

答案 0 :(得分:3)

如上所述here

  

默认情况下,时刻会以当地时间进行分析和显示。

您的输入字符串包含UTC偏移量,因此您只需使用moment(String, String)

请注意,如here所述:

  

Moment的字符串解析函数(如moment(string)moment.utc(string))接受偏移信息(如果提供),但将生成的Moment对象转换为本地或UTC时间。

因此无需使用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>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

对于本地时刻本身会做,但是,如果您想要特定的时区,可以使用tz方法和位置名称(在Moment Timezone中定义):

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