如何将UTC日期转换为本地日期对象?
问题描述:
我不知道为什么,但我已经尝试了所有可用的互联网解决方案,但仍然无法成功。 Event MomentJs无法提供帮助。 所以,我有一个日期字符串“2017-06-05T15:00:00Z”,它来自rest api。 我甚至尝试过js的时刻,但有帮助。 注意我希望返回日期对象,因为库期望日期对象不是本地字符串。 所以,到目前为止,我试过:如何将UTC日期转换为本地日期对象?
var d = new Date('2017-06-05T15:00:00Z')
console.log(d.getHours())
上面的代码打印17,而不是15岁!那么,我做错了什么?由于图书馆也在做自己的事情时获得了1700小时的日历,因此它显示了1700小时而不是1500小时。
答
您应该能够使用getTimezoneOffsetMethod
var d = new Date('2017-06-05T15:00:00Z')
d.setHours(d.getHours() + (d.getTimezoneOffset()/60))
console.log(d.getHours()) // 15
答
'2017-06-05T15:00:00Z'
的ž意味着祖鲁(UTC + 0:00)。所以这个时间字符串指定它不是本地而是全局时间。日期对象是本地的,因此:
new Date('2017-06-05T15:00:00Z');
回收当地日期,当它是在Zulu时钟15。所以你现在在时区UTC + 2:00。
因此,所有你需要得到TIMESTRING成为当地被删除的“Z”:
new Date('2017-06-05T15:00:00Z'.replace("Z",""));
或删除的时区偏移,看其他的答案...
取出Z. .. –
@Jonasw对不起,它来自休息API,除非你想让我处理字符串,但这是唯一的方法吗? – Maverick