加载中...
Temporal 是 TC39 的一项 ECMAScript 提案,目标是提供一套现代化的日期时间 API,全面取代自 1995 年沿用至今、抄自早期 Java 的 Date 对象。提案已达 Stage 3,浏览器与运行时正在逐步实现,Firefox 走在前列。
Date 的缺陷众所周知:对象可变导致副作用、月份从 0 计数、只支持本地与 UTC 两种时区、字符串解析行为不一致、无法表示"无时区的日期"等,开发者长期依赖 Moment.js、Day.js、date-fns 等库弥补。
Temporal 在全局命名空间下提供一组不可变类型,各司其职:Temporal.Instant 表示绝对时间点;PlainDate、PlainTime、PlainDateTime 表示不带时区的挂历日期与时间;ZonedDateTime 绑定 IANA 时区,自动处理夏令时;Duration 表示时长并支持日历感知的加减运算;还内建对 ISO 之外历法的支持。所有解析遵循严格的 ISO 8601/RFC 9557 格式,消除歧义。
Temporal 被视为 JS 标准库补课的标志性工程,落地后有望终结第三方日期库林立的局面。
登录 后参与讨论
暂无讨论,来发表第一条评论吧