如何使用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
答案 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;
答案 1 :(得分:1)
对于本地时刻本身会做,但是,如果您想要特定的时区,可以使用tz
方法和位置名称(在Moment Timezone
中定义):
moment.tz("2017-07-27T08:02:17+0200", "America/Toronto").format();