如何在不应用日光的情况下创建新日期JavaScript

krcsximq  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(97)

我正在做

new Date('2023-03-12T02:00:00')

...在特定时区中,我将获得
2023年3月12日星期日03:00:00 GMT-0700(太平洋夏令时)
同时当我在做

new Date('2023-03-13T02:00:00')

2023年3月13日星期一02:00:00 GMT-0700(太平洋夏令时)
如果是由于日光,那么为什么不是在3月13日,这也是日光应用日期

qojgxg4l

qojgxg4l1#

Daylight Saving Time in United States于2023年3月12日星期日凌晨2:00开始:
当当地标准时间即将到达2023年3月12日(星期日)02:00:00时,时钟向前拨1小时,改为当地夏令时03:00:00。
这意味着您的本地时间2023-03-12T02:00:00不存在。JavaScript在解析日期时会非常努力,有时候会太难:

> console.log(new Date("2023-02-31"));
2023-03-03T00:00:00.000Z

在这种情况下,它应用了一种有意义的校正:当时钟到达2:00时,它向前移动到3:00,正如美国立法所要求的。

  • 如果您的用例需要本地时间,那么您必须知道,每年都有一个小时被跳过,还有一个小时(当DST结束时)连续运行两次(尽管在不同的时区)。
  • 如果您的用例需要绝对时间,您可以使用UTC进行所有计算,并在需要时转换为显示的本地时区。

相关问题