暇空の歴史家
ツイート番号の知識
最終更新:
mtmchky
-
view
説明
ツイート番号は64bit整数で、以下のような構成になっています。
1bit(0固定) + 41bit(ミリ秒のタイムスタンプ) + 10bit(マシンID) + 12bit(シーケンス番号)
時刻部分は41bitで、ミリ秒を追加したUNIXエポックからオフセット1288834974657を引いた値になっています。
1bit(0固定) + 41bit(ミリ秒のタイムスタンプ) + 10bit(マシンID) + 12bit(シーケンス番号)
時刻部分は41bitで、ミリ秒を追加したUNIXエポックからオフセット1288834974657を引いた値になっています。
ツイート番号を時刻に変換する手順は下記のようになります。
1) 下位22bitを削除する(4194304で割って整数部分だけ残す)
2) オフセット1288834974657を加算する
3) ミリ秒部分を削除する(1000で割って整数部分だけ残す)
4) UNIXエポックをJSTに変換する(注1)
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) 1807674536214897063/4194304=430983194402.431... -> 430983194402
2) 430983194402+1288834974657=1719818169059
3) 1719818169059/1000=1719818169.059 -> 1719818169(UNIXエポック)
4) 2024年07月01日 16:16:09 JST
loading tweet...— 暇空茜 (@himasoraakane) July 1, 2024
(注1)UNIXエポックの変換について
時期的な制約
ツイート番号の仕様は2010年11月5日ごろに変更されています。
2010年11月6日以降はこの方法で計算できますが、それ以前のツイート番号はこの方法で計算できません。
2010年11月6日以降はこの方法で計算できますが、それ以前のツイート番号はこの方法で計算できません。
情報元
- ツイートIDからツイート時刻をミリ秒まで算出
- TwitterのツイートIDからタイムスタンプを抽出してみた