⭐ 觉得好用?收藏备用,下次直接打开

Snowflake ID 解析器 把一个 64 位雪花 ID 反解为生成时间、机器/数据中心 ID、序列号三部分,内置 Twitter、Discord、Mastodon、Sonyflake 预设,也支持自定义纪元与位布局,并用二进制分段图直观展示每一位的归属。全程 BigInt 精确运算、本地完成、不上传。

常见雪花布局对照

平台起始纪元时间戳机器/其他序列
Twitter / 通用2010-11-0441 bit5+5 bit(数据中心+机器)12 bit
Discord2015-01-0142 bit5+5 bit(worker+进程)12 bit
MastodonUnix 纪元48 bit16 bit
Sonyflake2014-09-0139 bit(×10ms)16 bit(机器)8 bit

小贴士:雪花 ID 大致按时间递增,所以可以用「某时刻对应的最小 ID」做按时间分页(如 Discord 的 before/after 游标)。

📍使用场景

  • 从日志 ID 反推生成时间排查问题时手里只有一个订单号/消息 ID,想知道它大概是什么时候生成的。选对平台预设把 ID 贴进去,立刻得到精确到毫秒的时间,省去翻数据库 created_at。
  • 核对发号器配置是否正确自研雪花发号器上线后,拿几个真实 ID 用"自定义"按你的位布局解析,看 worker/数据中心位是否落在预期范围、时间戳是否对得上,快速验证配置没写错。
  • 理解 Discord / Twitter ID抓接口或做爬虫时遇到一长串数字 ID,用对应预设拆出时间戳和机器位,搞清这些平台 ID 的结构,也方便按时间段做分页查询。

常见问题

什么是 Snowflake(雪花)ID?

一种分布式唯一 ID 生成方案,最早由 Twitter 开源。它把一个 64 位整数切成几段:最高位固定为 0,接着是毫秒级时间戳,再是机器/数据中心标识,最后是同一毫秒内的自增序列号。这样既能保证全局唯一、又大致按时间递增,且不依赖中心化发号。

为什么不同平台解析结果不一样?

因为各家的「起始纪元」和「位分配」不同。Twitter 纪元是 2010-11-04、Discord 是 2015-01-01、Mastodon 直接用 Unix 纪元;时间戳/机器/序列各占多少位也不一致。选错预设,解析出的时间和机器位就会是错的——如果时间明显不合理(比如 1970 年或几百年后),多半是预设选错了。

为什么要用 BigInt 解析,不能直接当数字算?

雪花 ID 是 64 位整数,远超 JavaScript Number 能精确表示的范围(2^53)。直接当普通数字会丢精度、算错时间戳和序列号。本工具全程用 BigInt 做位运算,保证每一位都准确。

"自定义"模式怎么用?

当你的发号器不是标准布局时使用:填入起始纪元(Unix 毫秒)、时间单位(多数为 1ms,Sonyflake 为 10ms)、以及时间戳/机器/序列各自的位数。布局按「高位→低位 = 时间戳 | 机器 | 序列号」解析,三段位数之和需 ≤ 63。

解析出的时间是哪个时区?

雪花 ID 里存的是 UTC 毫秒时间戳,与时区无关。工具顶部"生成时间"按你浏览器所在时区显示,同时给出 UTC、ISO 8601 和原始 Unix 毫秒/秒,方便你按需取用。

数据会上传吗?

不会。ID 解析、位运算、时间换算全部在浏览器本地完成,不发起任何网络请求,贴敏感业务 ID 也放心。