在ISO转换后,JavaScript时间滞后了一个小时

JavaScript time is an hour behind after ISO conversion

本文关键字:小时 一个 滞后 转换 ISO 时间 JavaScript      更新时间:2023-09-26

我用JavaScript创建了一个具有正确时间的新Date,但在我使用toISOString()转换它之后,它落后了一个小时。为什么会这样?

https://jsfiddle.net/73nfyxeL/

var createdDateTime = new Date('2015-04-01 11:53:00');
var isoCreatedDateTime = "";
alert(createdDateTime);
isoCreatedDateTime = createdDateTime.toISOString().match(/('d{4}'-'d{2}'-'d{2})T('d{2}:'d{2}:'d{2})/);
alert(isoCreatedDateTime[1] + ' ' + isoCreatedDateTime[2]);
createdDateTime.setMinutes(createdDateTime.getMinutes() + 1);

据我所知,这应该不受当地时间变化的影响(例如夏令时),因为我给它一个预设的时间,而不是时区。怎么回事?

toISOString方法不仅格式化日期,而且首先将其转换为UTC。

您所在的本地时区与UTC之间的时差为一小时。