dev.to | 📄 原文链接 | 2026-10-11 收录

Node.js 26 默认启用 Temporal API,修掉了 Date 仍存在的一小时夏令时偏移

来源:dev.to — 2026-10-10

📋 概述

Node.js 26 无需开关就默认启用 Temporal API。作者用官方 node:26 与 node:24 镜像实测,发现它修掉了一个真实存在的一小时偏差:`new Date(now.getTime() + 24*60*60*1000)` 这种「加一天」写法在夏令时切换当天会错一小时。以 2026 年美国春季跳表(America/New_York 在 3 月 8 日 02:00 直接跳到 03:00)为例,从 3 月 7 日 22:00 起算,加 24 小时读回本地时间是 3 月 8 日 23:00,而 Temporal.ZonedDateTime.add({days:1}) 给出 3 月 8 日 22:00——它固定墙上时钟、让 UTC 偏移从 -05:00 变成 -04:00,这才是人说的「同一时间、晚一天」。代价是性能:一百万次「取瞬间、加一秒、读字段回值」的循环里,Date 约 66–73 ms,Temporal 约 1840–2071 ms,稳定慢了约 27 倍,所以正确的数学并不免费。

🔑 核心要点

💡 金句

它看着无害,一年中大部分时候确实无害。但一年两次,在任何实行夏令时的时区,它会差一小时。
← 返回 dev.to 首页