~/lxcid关注

← 工具/

时间表达式游乐场

用于解析 ISO 8601、RFC 3339 和 IXDTF 时间表达式的交互式游乐场。通过彩色编码的词法分析器标记可视化时间字符串的解剖,并探索结构化 AST 输出。由 @taskade/temporal-parser 提供支持。

阅读公告 →

试试这些例子:

关于 Temporal Parser

@taskade/temporal-parser 库可将 ISO 8601、RFC 3339 和 IXDTF 时间表达式解析为结构化 AST(抽象语法树)。

此解析器支持多种时间格式,包括:

  • 日期: 2025-01-12
  • 时间: T10:30:45
  • 时区: +08:00, [Asia/Singapore]
  • 时长: P1Y2M3DT4H5M6S
  • 区间: 2025-01-01/2025-12-31
  • IXDTF 注释: [u-ca=gregory]

了解更多: GitHub 仓库 · NPM 软件包

标准参考

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:00Zkind=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 持续时间P1Y2M3DT4H5M6Skind=Duration; years=1; months=2; days=3; hours=4; minutes=5; seconds=6
ISO 8601 时间区间2025-01-01/2025-12-31kind=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 版软件包核实。