英文:
How To Create new Date JavaScript without DayLight Applied
问题
... 在特定时区中我得到了以下结果:
> 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日呢?
英文:
I am doing
new Date('2023-03-12T02:00:00')
... in Pecific TimeZone I am getting
> Sun Mar 12 2023 03:00:00 GMT-0700 (Pacific Daylight Time)
meanwhile when I am doing
new Date('2023-03-13T02:00:00')
> Mon Mar 13 2023 02:00:00 GMT-0700 (Pacific Daylight Time)
if it is due to daylight then why it is not on 13 March which is also daylight applied date
答案1
得分: 1
美国夏令时 于 2023 年 3 月 12 日星期日开始,时间为上午 2:00:
当地标准时间即将达到 2023 年 3 月 12 日星期日 02:00:00 时,时钟将向前调整 1 小时至当地夏令时时间 2023 年 3 月 12 日星期日 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,就像美国法规规定的那样。
-
如果您的用例需要使用当地时间,您必须意识到每年都会少一个小时,另一个小时(夏令时结束时)会连续运行两次(尽管在不同的时区)。
-
如果您的用例需要绝对时间,您可以在所有计算中使用协调世界时(UTC),并在需要时将其转换为当地时区显示。
英文:
Daylight Saving Time in United States starts on Sun, Mar 12, 2023 2:00 AM:
> When local standard time is about to reach
Sunday, 12 March 2023, 02:00:00 clocks are turned forward 1 hour to
Sunday, 12 March 2023, 03:00:00 local daylight time instead.
That means that your local time 2023-03-12T02:00:00
does not exist. JavaScript is designed to try really hard when parsing dates, some times too hard:
> console.log(new Date("2023-02-31"));
2023-03-03T00:00:00.000Z
In this case it applies a correction that kind of makes sense: when clock reaches 2:00 it moves forward to 3:00, just as US legislation mandates.
-
If your use case requires local times, you must be aware that there's a whole hour that's skipped every year and another hour (when DST ends) that runs twice in a row (albeit in different time zones).
-
If your use case requires absolute times, you can use UTC for all your calculations and convert to local time zone on display, should that be needed.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论