2017-06-06 131 views
0

我不知道爲什麼,但我已經嘗試了所有可用的互聯網解決方案,但仍然無法成功。 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小時。

+2

取出Z. .. –

+0

@Jonasw對不起,它來自休息API,除非你想讓我處理字符串,但這是唯一的方法嗎? – Maverick

回答

1

您應該能夠使用getTimezoneOffsetMethod

var d = new Date('2017-06-05T15:00:00Z') 
d.setHours(d.getHours() + (d.getTimezoneOffset()/60)) 
console.log(d.getHours()) // 15 
0
'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","")); 

或刪除的時區偏移,看其他的答案...