时间表达式游乐场
用于解析 ISO 8601、RFC 3339 和 IXDTF 时间表达式的交互式游乐场。通过彩色编码的词法分析器标记可视化时间字符串的解剖,并探索结构化 AST 输出。由 @taskade/temporal-parser 提供支持。
标准参考
ISO 8601、RFC 3339 与 IXDTF 的关系
ISO 8601 规定了公历日期和 24 小时制时间的互操作表示方式。RFC 3339 为互联网协议选取了更窄的时间戳格式。RFC 9557 在 RFC 3339 上加入可选的方括号后缀,用于携带时区、日历等信息,并将这一扩展格式命名为 IXDTF。
经验证的解析示例
以下结果均由 @taskade/temporal-parser 1.1.0 在构建时生成,再精简为与示例相关的 AST 字段。
| 格式 | 可复制输入 | 实际 AST 字段 |
|---|---|---|
| RFC 3339 UTC 时间戳 | 2025-01-12T10:00:00Z | kind=DateTime; offset.kind=UtcOffset |
| RFC 9557 / IXDTF 时区与日历 | 1996-12-19T16:39:57-08:00[America/Los_Angeles][u-ca=hebrew] | kind=DateTime; offset=-08:00; timeZone=America/Los_Angeles; u-ca=hebrew |
| ISO 8601 持续时间 | P1Y2M3DT4H5M6S | kind=Duration; years=1; months=2; days=3; hours=4; minutes=5; seconds=6 |
| ISO 8601 时间区间 | 2025-01-01/2025-12-31 | kind=Range; start=2025-01-01; end=2025-12-31 |
这个解析器会做什么,以及不会做什么
该库对支持的字符串进行词法分析,并返回结构化 AST。不支持的语法会触发解析错误;解析成功本身并不证明该值适用于所有下游用途。
- 1.1.0 版实现了上述标准中一组实用的子集。这些可接受的示例并不代表解析器完整符合 ISO 8601、RFC 3339 或 RFC 9557 的每一种语法和规则。
- AST 会保留数值偏移、时区标识符和后缀注释,但解析器不会验证该标识符是否存在于 IANA 数据中、查询其时区规则,或检查偏移是否与命名时区一致。
- 解析器不会验证日期和时间字段的取值范围。例如,
2025-13-40目前仍会生成月份为 13、日期为 40 的 DateTime AST。将字段当作真实日期前,请另行验证。
主要参考资料
标准术语与解析器行为已于 2026 年 7 月 14 日按 1.1.0 版软件包核实。