AZ Tools

Snowflake ID 解码器 (Discord, Twitter)

开发

Snowflake 是一种 64 位 ID,把毫秒时间戳、机器标识符与每毫秒的序列计数器打包进一个可排序的数字。Discord、Twitter/X、Instagram 以及许多分布式系统都在使用。本解码器将 ID 拆回各部分:移出高位以还原原始时间戳,加上平台的自定义纪元得到真实 UTC 日期时间,并把低位拆分为该平台所用的 worker、进程、数据中心、分片或序列字段。可选择 Discord(纪元 2015-01-01,5 位 worker + 5 位进程 + 12 位自增)、Twitter/X(纪元 2010-11-04,5+5+12)、Instagram(13 位分片 + 10 位序列),或使用自定义纪元。时间戳以 ISO UTC、你的本地时间、相对「x 前」以及原始纪元毫秒显示。全部在本地运行;不上传任何内容。

时间戳

UTC2016-04-30T11:18:25.796Z
本地4/30/2016, 11:18:25 AM
相对10y 2mo前
纪元 ms1462015105796
原始时间戳41944705796

字段

Worker (5b)1
进程 (5b)0
自增 (12b)7

Discord 纪元 2015-01-01 · Twitter/X 2010-11-04 · Instagram 2011-08-24。请用签发该 ID 的平台解码。

使用方法

  1. 选择平台(Discord、Twitter/X、Instagram 或自定义)。
  2. 粘贴 Snowflake ID — 例如 Discord 的用户或消息 ID。
  3. 查看创建时间戳与 worker / 序列字段;按需复制 UTC 时间或纪元。

常见问题

在哪里找到 Snowflake ID?
在 Discord 中启用开发者模式,右键用户、消息、频道或服务器即可复制其 ID。在 Twitter/X 中是推文 URL 末尾的长数字。Instagram 媒体 ID 由其 API 返回。这些长数字 ID 都可在此解码。
为何各平台需要不同纪元?
Snowflake 的时间戳计的是自所选『纪元』而非 Unix 纪元以来的毫秒数,从而能用更少的位。Discord 用 2015-01-01,Twitter/X 用 2010-11-04,Instagram 用 2011-08-24。用错平台解码,日期会差好几年 — 请选择签发该 ID 的来源。
worker 与序列字段是什么?
为了无需协调地生成 ID,每台机器都嵌入自身标识符(Discord 为 worker/进程,Twitter 为数据中心+worker,Instagram 为分片),外加一个对同一毫秒内创建的多个 ID 递增的序列计数器。借此可知是哪个节点生成了 ID,以及它大致有多繁忙。
时间戳精确吗?
精确 — 毫秒时间戳直接编码在 ID 中,因此创建时间精确到毫秒(前提是生成服务器的时钟正确)。相对时间是相对于你设备的当前时钟计算的。

相关工具