2017-04-24 336 views
0

你好我試圖更改此日期2017年3月29日爲UTC日期:日期格式爲UTC月份日期和年份(MMM DD,YYYY)

這是我的嘗試:

var isoDate = new Date('Mar 29, 2017').toISOString(); 
 

 
//isoDate => returns "2017-03-28T22:00:00.000Z"

爲什麼會收到28T22在begginning而不是29?

+3

輸出錯誤? 2017年3月29日(星期二)中歐時間是2017年3月28日22:00 UTC(ISO格式爲「2017-03-28T22:00:00.000Z」) –

+0

請參閱此鏈接(https://www.worldtimebuddy。 com/cet-to-utc-converter)以獲取更多信息。 - 你看到CET是+ 2h或從另一邊UTC是-2h。 – Felix

+0

你的時區是? '''toISOString()'''會通過添加/減去UTC和你的時區之間的時間差來顯示日期。 –

回答

2

您在UTC時區轉換,而不是CET。

CET代表中歐時間UTC被稱爲世界時間

UTC比CET晚了2個小時。

所以,當它是11:00 CET這將是上午9時UTC

toISOString()將通過添加/減去UTC和您的時區之間的時間差來顯示日期。 (見評論)

+0

這裏值得注意的是,不管時區如何,都可以按UTC創建一個日期,但是對於它的完成方式要嚴格得多。要得到'2017-03-29T00:00:00.000Z',你可以這樣做:'new Date(Date.UTC(2017,2,29))' – kristofferostlund

3

爲什麼我得到28T22在開始而不是29?

好吧,只是因爲你強制它,你正在使用.toISOString()這將返回ISO格式的日期。

因爲Mar 29, 2017 T00:00:00.000ZCETISO格式2017-03-28T22:00:00.000Z

你可以檢查the difference between UTC and CET time zones瞭解更多詳情。

相關問題