RFC 9562
UUID v7 生成器
UUID v7 把 Unix 毫秒时间戳放在高位,版本位和变体位之后是随机位。本页默认生成 v7,也可以改成 v4。
生成 UUID
选择版本和数量,然后生成。
标准写法类似 xxxxxxxx-xxxx-7xxx-yxxx-xxxxxxxxxxxx。其中 y 是 8、9、a 或 b,也就是 RFC 变体。
不同毫秒之间,因为时间戳在前、连字符位置固定,文本会按时间排序。同一毫秒内其余位是随机的,所以本页不会做成计数器。
各位分别是什么
- 第 0–47 位:Unix 毫秒时间。
- 第 48–51 位:版本 7。
- 第 52–63 位:rand_a,本页为随机数。
- 第 64–65 位:变体 10。
- 第 66–127 位:rand_b,随机数。
常见问题
UUID v7 的布局是什么?
RFC 9562 把 48 位大端 Unix 毫秒时间戳放在最前面,版本设为 7,然后是 12 位随机数、值为 10 的变体位,以及另外 62 位随机数。
写进去的是哪只时钟?
用的是这个浏览器的 Date.now(),也就是从 1970-01-01 UTC 起算的毫秒,不含闰秒。电脑时钟不准,写进去的时间也不准。
这和数据库的 uuidv7() 一样吗?
版本、变体和毫秒字段遵循 RFC 9562。PostgreSQL 18 还会在 12 位 rand_a 里放亚毫秒分数,并在同一个后端里保持顺序。本页把这 12 位留作随机数。