Javascript toISOString()在4月1日返回错误的数据

Javascript toISOString()在4月1日返回错误的数据,javascript,Javascript,我使用方法toISOString()将日期转换为ISO字符串 console.log(date); var x = date.toISOString(); console.log(x); 我的输入日期对象包含以下数据 2020年4月1日星期三01:00:00 GMT+0200(Mitteleuropäische Sommerzeit) toISOString()的输出是2020-03-31T23:00:00.000Z 我试图找到一个解决方案并解释这个奇怪的结果,因为它只发生在4月1日——

我使用方法
toISOString()
将日期转换为ISO字符串

 console.log(date);
 var x = date.toISOString();
 console.log(x);
我的输入日期对象包含以下数据
2020年4月1日星期三01:00:00 GMT+0200(Mitteleuropäische Sommerzeit)

toISOString()
的输出是
2020-03-31T23:00:00.000Z

我试图找到一个解决方案并解释这个奇怪的结果,因为它只发生在4月1日——这不是一个4月的玩笑。有人能解释这种行为吗?或者可以给我一个提示,如何才能得到正确的值?

简单。 您的时区是+0200
GMT
,并且
toISOString()
为您提供
Zulu
时间。这里的一切都是正确的。

简单。
您的时区是+0200
GMT
,并且
toISOString()
为您提供
Zulu
时间。这里的一切都是正确的。

日期是如何设置的?不同的时区,但日期是相同的。那么问题出在哪里?ISO字符串以UTC为单位,而输入日期以GMT+2为单位。它们是同一个日期。没有问题,两者都代表完全相同的时间,只是UTC的偏移量不同“因为它只发生在4月1日-这不是一个4月玩笑。有人能解释这种行为吗?”-你可能想去看看DST在2020年结束时……日期是如何设置的?不同的时区,但是日期是一样的,那有什么问题?ISO字符串以UTC为单位,而输入日期以GMT+2为单位。它们是相同的日期。没有问题,它们都代表完全相同的时间,只是UTC的偏移量不同“因为它只发生在4月1日-这不是4月的玩笑。有人能解释这种行为吗?”-你可能想在2020年DST结束时去检查一下……而这个问题只发生在4月1日?@michael mammut你希望得到什么信息?你要一个iso字符串,你就得到了iso字符串。。没问题。如果我将
toISOString Wed Apr 01 2020 01:00:00 GMT+0200(Mitteleuropäische Sommerzeit)
发送到
toISOString()
方法,该方法返回
2020-03-31T23:00:00.000Z
。那么,为什么日期发生了变化,我该如何防止呢?我解释了一个ISO字符串,即2020年4月1日。“那个么为什么日期发生了变化”——它并没有。当你从早上1:00减去2小时,你当然会在前一天23:00着陆。。。改变的是,您的本地时区现在领先UTC两小时,而“昨天”仅领先UTC一小时。再次强调:DST是这里的问题。这个问题只在4月1日发生?@michael mammut您希望得到什么信息?你要一个iso字符串,你就得到了iso字符串。。没问题。如果我将
toISOString Wed Apr 01 2020 01:00:00 GMT+0200(Mitteleuropäische Sommerzeit)
发送到
toISOString()
方法,该方法返回
2020-03-31T23:00:00.000Z
。那么,为什么日期发生了变化,我该如何防止呢?我解释了一个ISO字符串,即2020年4月1日。“那个么为什么日期发生了变化”——它并没有。当你从早上1:00减去2小时,你当然会在前一天23:00着陆。。。改变的是,您的本地时区现在领先UTC两小时,而“昨天”仅领先UTC一小时。再次强调:DST是这里的问题。