暇空の歴史家

ツイート番号の知識

最終更新:

mtmchky

- view
管理者のみ編集可

説明

ツイート番号は64bit整数で、以下のような構成になっています。
1bit(0固定) + 41bit(ミリ秒のタイムスタンプ) + 10bit(マシンID) + 12bit(シーケンス番号)
時刻部分は41bitで、ミリ秒を追加したUNIXエポックからオフセット1288834974657を引いた値になっています。

ツイート番号を時刻に変換する手順は下記のようになります。
1) 下位22bitを削除する(4194304で割って整数部分だけ残す)
2) オフセット1288834974657を加算する
3) ミリ秒部分を削除する(1000で割って整数部分だけ残す)
4) UNIXエポックをJSTに変換する(注1)

例えば下記のツイートの場合、以下のような計算になります。
1) 1807674536214897063/4194304=430983194402.431... -> 430983194402
2) 430983194402+1288834974657=1719818169059
3) 1719818169059/1000=1719818169.059 -> 1719818169(UNIXエポック)
4) 2024年07月01日 16:16:09 JST


(注1)UNIXエポックの変換について

たとえば下記のような計算サイトで変換できます。
UNIX時間⇒日付変換
https://keisan.casio.jp/exec/system/1526004418

時期的な制約

ツイート番号の仕様は2010年11月5日ごろに変更されています。
2010年11月6日以降はこの方法で計算できますが、それ以前のツイート番号はこの方法で計算できません。

情報元

  • ツイートIDからツイート時刻をミリ秒まで算出
  • TwitterのツイートIDからタイムスタンプを抽出してみた
人気記事ランキング
ウィキ募集バナー