IDからツイートの投稿日時を調べる方法
IDを見つける
ポストのリンクの末尾にある長い数字です:x.com/user/status/1234567890123456789。リンクをそのまま貼り付けてもかまいません。
1件でも複数でも貼り付ける
IDまたはリンクを最大100件、1行に1つずつ。
時刻を読む
作成時刻がミリ秒単位まで、UTCとお住まいのタイムゾーンで表示されます。必要ならリストをCSVでダウンロードできます。
削除されたポストでも使えます。時刻はID自体に含まれているため、ポストが残っている必要はありません。
TwitterのSnowflake IDが日時を保存する仕組み
2010年11月4日以降、XはSnowflakeという仕組みでポストIDを作成しています。各IDは3つの部分からなる64ビットの数値です。
- ポストが作成された時刻(X独自のエポックからのミリ秒)
- ポストを作成したサーバーのID
- 同じミリ秒に作成されたポストのためのシーケンス番号
時刻は最上位のビットに入っているため、IDを22ビット右にシフトしてエポックを足せば取り出せます。
milliseconds since 1970 = (ID >> 22) + 1288834974657
- ID
1234567890123456789 - 22ビット右にシフト
294343922167 - エポック1,288,834,974,657を加算
1583178896824 - =2020年3月2日 19:54:56.824 UTC
たとえばID 1234567890123456789を22ビット右にシフトすると294,343,922,167になります。これに1,288,834,974,657を足すと1,583,178,896,824ミリ秒となり、2020年3月2日 19:54:56.824 UTCです。
ここ数年に作成されたXアカウントのIDにも同じ形式が使われています。アカウントの作成日を知るには、アカウント作成日確認ツールが直接読み取ります。
日付をツイートIDに変換して検索に使う
逆の変換もできます。ミリ秒を上位ビットに戻してシフトすると、その時点で取り得る最小のIDが得られます。
ID = (milliseconds since 1970 − 1288834974657) << 22
Xの検索はsince_id:とmax_id:の検索コマンドに対応しており、ほとんどのAPIも同様です。境界IDを2つ使えば、検索を秒単位の正確な時間帯に絞り込めます。日単位でしか動かないsince:やuntil:より正確です。検索条件全体は検索コマンドビルダーで作れます。
ツイートIDをまとめて日時に変換
スプレッドシート、データセット、保存したポストのリストなどから、最大100件のIDやリンクを一度に貼り付けられます。表は日時順に並び、無効な行には印が付き、ID、UTC時刻、ISO時刻、Unixミリ秒を含むCSVでダウンロードできます。研究者はポストのリンク集の日付付けに、記者は年表づくりに、開発者はデータセットの確認に使っています。
| 20 | タイムスタンプなし:2010年11月4日より前 | |
| 1234567890123456789 | Mar 2, 2020, 19:54:56 | 1583178896824 |
| 1600000000000000000 | Dec 6, 2022, 05:31:41 | 1670304701219 |
| 1800000000000000000 | Jun 10, 2024, 03:00:17 | 1717988417039 |
| 2006515713438646272 | Jan 1, 2026, 00:00:00 | 1767225600000 |
関連ツール
よくある質問
ツイートがいつ投稿されたかを調べるには?
上にポストのリンクかIDを貼り付けてください。変換ツールがIDに保存された作成時刻を読み取り、UTC、お住まいのタイムゾーン、Unix時刻でミリ秒単位まで表示します。
変換ツールはツイートを取得しますか?
取得しません。日時はブラウザ内でIDから計算し、Xへのリクエストは発生しないため、削除されたポストでもオフラインでも使えます。ポストそのものを見るには、ツイートビューアで開いてください。
削除されたツイートの日時も分かりますか?
分かります。時刻はIDの一部なので、ポストが残っているかどうかに関係なく、どのポストIDでも日時を求められます。
TwitterのSnowflake IDとは何ですか?
Xが2010年11月4日からポストに使っている64ビットのID形式です。最初の41ビットに作成時刻がミリ秒で入り、その後にマシンIDとシーケンス番号が続きます。そのため、IDは時間とともに大きくなり、日時にデコードできます。
とても古いツイートで使えないのはなぜですか?
2010年11月4日より前のポストは、タイムスタンプを含まない連番のIDを使っているため、IDから日時を計算できません。
日付から逆変換したIDは実在するツイートですか?
実在しません。日付から作ったIDは境界、つまりその時点で取り得る最小のIDで、検索でsince_idやmax_idと組み合わせて使うものです。実際のポストと一致する可能性はきわめて低いです。
日時はどのくらい正確ですか?
ミリ秒単位で正確です。ポストが作成されたときにXがIDに書き込んだ作成時刻そのものです。
多くのツイートIDをまとめて変換できますか?
できます。IDかリンクを1行に1つずつ最大100件貼り付け、結果をCSVでダウンロードしてください。
ユーザーIDも日時に変換できますか?
新しいXのユーザーIDは同じSnowflake形式を使っているため、変換ツールで日時を求められます。古く短いユーザーIDはデコードできません。どのアカウントでも正確な作成日を知りたい場合は、アカウント作成日確認ツールをご利用ください。