日期格式为UTC月份日期和年份(MMM DD,YYYY)

问题描述:

你好我试图更改此日期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和你的时区之间的时间差来显示日期。 –

您在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

为什么我得到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了解更多详情。