ULID

ULID 解析器

解析 ULID 时间戳与随机段

校验与验证
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月30日
选项模式
输入

每行贴一个 ULID,直接看时间信息和有效性;随机段显示与复制选项可在高级模式调整。

输出
ULID parse result will appear here
🔒 浏览器内本地处理 · ULID 时间戳解析
页面阅读模式

完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。

工具说明

每行解析一个 ULID,校验 26 字符 Crockford Base32 与最大值 7ZZZZZZZZZZZZZZZZZZZZZZZZZ。输入大小写不影响有效性;大写选项只改变输出表示。有效行显示编码的 48 位时间戳,以及可选的 20 位 Hex 随机段(80 位)。提取时间不能证明真实创建时间或跨系统事件顺序。输入及设置会保存在当前浏览器,清空可删除草稿。

生产可用片段

示例

text

7ZZZZZZZZZZZZZZZZZZZZZZZZZ → 有效最大值
80000000000000000000000000 → 越界

失败门诊(高频踩坑)

字符集合法还不够

原因:26 字符 Base32 字符串可能比 ULID 多出两位。

修复:必须检查首字符范围,拒绝越界而不是截断。

场景配方

01

先检查 ULID 边界,再读取时间

目标:区分有效编码与超范围的 Base32 字符串。

  1. 分行输入全零 ULID、7ZZZZZZZZZZZZZZZZZZZZZZZZZ 和 80000000000000000000000000。
  2. 解析后确认前两条通过,第三条报告 128 位越界。
  3. 若只需要时间信息,可关闭随机段再复制。

结果:解析结果说明编码时间与格式有效性,不验证事件来源。

常见问题

支持哪些 ULID 字符串?

必须是 26 个 Crockford Base32 字符,大小写均可,不含 I、L、O、U。首字符须为 0–7,确保整体不超过 128 位。

为什么以 8 开头的值无效?

26 个 Base32 字符能容纳 130 位,但 ULID 只有 128 位。超过 7ZZZZZZZZZZZZZZZZZZZZZZZZZ 的值必须拒绝。

时间戳能证明 ID 的真实生成时间吗?

不能。它只是输入 ID 中编码的时间,生成方可以指定该值,不同系统时钟也可能不一致或回拨。

关闭大写输出后小写会被拒绝吗?

不会,ULID 校验仍不区分大小写。关闭后结果保留输入的大小写。

显示随机段选项影响哪些内容?

它同时控制界面显示和复制内容。关闭后,单行复制与全部复制都不包含随机段 Hex。

支持本地批量解析吗?

支持每行一个 ID,跳过空行并分别标记非法行。输入与选项保存在 localStorage,清空可删除草稿;输入内容不会上传。

继续浏览