IDからツイートの投稿日時を調べる方法

1

IDを見つける

ポストのリンクの末尾にある長い数字です:x.com/user/status/1234567890123456789。リンクをそのまま貼り付けてもかまいません。

2

1件でも複数でも貼り付ける

IDまたはリンクを最大100件、1行に1つずつ。

3

時刻を読む

作成時刻がミリ秒単位まで、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

  1. ID1234567890123456789
  2. 22ビット右にシフト294343922167
  3. エポック1,288,834,974,657を加算1583178896824
  4. =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でダウンロードできます。研究者はポストのリンク集の日付付けに、記者は年表づくりに、開発者はデータセットの確認に使っています。

関連ツール

よくある質問

ツイートがいつ投稿されたかを調べるには?

上にポストのリンクか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はデコードできません。どのアカウントでも正確な作成日を知りたい場合は、アカウント作成日確認ツールをご利用ください。