前端知库

Temporal 为什么把 Instant、PlainDate 和 ZonedDateTime 分开?

参考答案

这些类型表达不同业务语义。Instant 表示确定的时间线瞬间;PlainDate 表示不附带时区和具体时刻的日期;ZonedDateTime 则结合瞬间、时区与日历,让本地时间计算有明确上下文。

把生日或账期当成某个时区午夜的瞬间,可能在跨时区显示时改变日期。反过来,把会议开始时间只保存成年月日与小时,也可能无法唯一确定真实瞬间。先选对语义,再做格式化和算术运算。

Temporal 的类型大多采用不可变操作思路,但不能据此忽略夏令时的缺失或重复本地时间。MDN 目前仍标注兼容性限制,项目需核对运行环境或使用合适的兼容方案,不应直接假定所有浏览器都提供全局 Temporal。