AZ Tools

Snowflake ID デコーダー (Discord, Twitter)

開発

Snowflake は、ミリ秒タイムスタンプ、マシン識別子、ミリ秒ごとのシーケンスカウンタを 1 つのソート可能な数値に詰めた 64 ビット ID です。Discord、Twitter/X、Instagram をはじめ多くの分散システムで使われています。このデコーダーは ID を各部分に分解します:上位ビットをシフトして生のタイムスタンプを復元し、プラットフォームのカスタムエポックを加えて実際の UTC 日時を得て、下位ビットをそのプラットフォームが使うワーカー・プロセス・データセンター・シャード・シーケンスのフィールドに分解します。Discord(エポック 2015-01-01、5 ビットワーカー + 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

フィールド

ワーカー (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. 生成タイムスタンプとワーカー / シーケンスフィールドを読み、必要に応じて 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 を発行した発生元を選んでください。
ワーカーとシーケンスのフィールドとは?
調整なしで ID を生成するため、各マシンは自身の識別子(Discord はワーカー/プロセス、Twitter はデータセンター+ワーカー、Instagram はシャード)と、同じミリ秒に作られた複数 ID で増加するシーケンスカウンタを埋め込みます。これにより、どのノードが ID を生成し、おおよそどれだけ忙しかったかが分かります。
タイムスタンプは正確ですか?
はい — ミリ秒タイムスタンプは ID に直接エンコードされているため、生成時刻はミリ秒単位で正確です(生成サーバーの時計が正しかった前提)。相対時間はお使いのデバイスの現在時計に対して計算されます。

関連ツール