ULID 解码器 (时间戳与随机数)
ULID 是一个 26 字符、可按字典序排序的标识符:前 10 个字符是 48 位毫秒时间戳,后 16 个字符是 80 位随机数,全部采用 Crockford Base32。由于时间位于高位,ULID 按创建顺序排序 — 这正是人们用它替代随机 UUID 的原因。本解码器将 ULID 拆开:读取时间戳并以 ISO UTC、相对「x 前」与原始纪元毫秒显示,并以 Crockford Base32 和 hex 两种形式显示随机部分。解码不区分大小写,并宽容处理经典的 Crockford 易混字符 — I 与 L 读作 1,O 读作 0 — 同时校验长度、字母表,以及时间戳不超过 48 位(首字符必须为 0–7)。全部在本地运行;不上传任何内容。
前 10 字符 = 48 位 ms 时间戳,后 16 字符 = 80 位随机数。Crockford Base32:I/L→1,O→0,不区分大小写。
使用方法
- 粘贴一个 ULID(26 字符,如 01ARZ3NDEKTSV4RRFFQ69G5FAV)。
- 查看创建时间戳(UTC、相对与纪元 ms)。
- 按需以 Crockford 或 hex 复制时间戳或随机数。
常见问题
- ULID 如何编码时间?
- 前 10 个 Crockford Base32 字符保存自 Unix 纪元(1970-01-01)以来的 48 位毫秒计数。48 位可覆盖到公元 10889 年,故首字符只能为 0–7;更大会溢出并被判为无效。其余 16 个字符为 80 位随机数。
- 为何解码不区分大小写?
- ULID 使用为人友好的 Crockford Base32:不区分大小写,并把视觉上易混的 I、L 当作 1,O 当作 0。本工具在解码前对其归一化,因此用小写输入或用 O 代替 0 仍能正确解码。
- ULID 与 UUID 有何不同?
- 二者都是 128 位 ID,但 ULID 编码为 26 个可排序的 Base32 字符且时间戳在高位,因此 ULID 列表本身即按创建顺序。随机 UUID(v4)不含时间,无法有意义地排序;UUID v7 是标准对同一需求的答案,那些请用 UUID 检查器。
- 时间戳精确吗?
- 精确 — 毫秒时间戳直接存储在 ULID 中,因此只要生成器时钟正确,创建时间精确到毫秒。相对时间是相对于你设备的当前时钟计算的。
相关主题指南
相关工具
Unix 时间戳转换器
将 Unix 时间戳转换为日期,或将日期转换为时间戳。
日期格式转换
输入任意格式日期(ISO、RFC、Unix epoch、locale),同时显示 14+ 种标准格式。
纪元时间转换器 (Unix · NTP · FILETIME · .NET Ticks · Excel · Cocoa)
在 11 种历史纪元格式间转换同一时刻: Unix 秒/毫秒、NTP、Windows FILETIME、.NET DateTime Ticks、Mac HFS+、Apple Cocoa CFAbsoluteTime、Excel 1900·1904 序列号、ISO 8601、RFC 2822。
UUID 检查器 (版本·变体·时间)
粘贴任意 UUID 即可查看其版本(1–8)、变体,以及基于时间的 v1、v6、v7 中内嵌的创建时间戳、时钟序列与节点(MAC),全部在浏览器内解码。
ULID / NanoID / CUID2 生成器
批量生成 ULID、NanoID、CUID2——UUID 的现代替代,更短、可排序或更耐碰撞。
Snowflake ID 解码器 (Discord, Twitter)
将 Discord、Twitter/X 或 Instagram 的 Snowflake ID 解码为创建时间戳、worker/进程或数据中心、序列号 — 含自定义纪元模式 — 全部在浏览器内完成。