TwitterのID日時変換ツール
SorsaのツイートID日時変換ツールは、Xの投稿のIDやリンクから投稿の瞬間を直接読み取り、UTCと現地のタイムゾーンの日時、ISO 8601、Unix時間を表示します。IDを1つでもリスト全体でも貼り付けられ、日時からIDへの逆変換もできます。無料で、ブラウザ上で動作します。SorsaのツイートID日時変換ツールは、Xの投稿がいつ行われたかを、リンクまたはIDから表示します。無料で、ブラウザ上で動作します。
日時がここに表示されます
投稿のリンクまたはIDを、リストなら1行に1件ずつ貼り付けてください。
ツイートの投稿日時を調べる方法
Xは投稿の下に日時を分単位で、自分の現地時間で表示します。IDにはそれ以上の情報があります。正確な瞬間を、どのタイムゾーンでも、何件でも、削除された投稿についても読み取れます。
x.com/username/status/1234567890123456789
2020年3月2日(月)19:54:56.824 UTC
Xが示すもの
- 投稿の下の日時(分単位)
- 自分のタイムゾーンのみ
- 公開中の投稿を1件ずつ
IDから分かること
- ミリ秒単位の正確な瞬間
- UTC、現地時間、ISO 8601、Unix時間
- リスト全体と削除された投稿
3つのステップ
リンクまたはIDをコピーする
IDは投稿リンクの/status/の後ろにある長い数字です。リンク全体でも使えます。
1件またはリストを貼り付ける
シート、データセット、メモから1行に1件ずつ。貼り付けると各行が変換されます。
時刻を読む
UTCと現地のタイムゾーン、ISO 8601、Unix時間を、それぞれコピーできます。リストは表とCSVになります。
TwitterのSnowflake IDが日時を保持するしくみ
2010年11月4日以降、XはすべてのツイートIDをSnowflakeというシステムで生成しています。先頭に時刻が入った64ビットの数値です。
- 1ビット未使用常に0
- 41ビット時刻Xのエポックからのミリ秒
- 10ビットマシン生成したサーバー
- 12ビットシーケンス同じミリ秒内のID
計算式
time = (ID >> 22) + 1288834974657
ID = (time − 1288834974657) << 22
計算例
- 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のエポック1288834974657は、2010年11月4日01:42:54.657 UTCです。時刻が上位ビットにあるので、IDが大きいほど新しい投稿で、41ビットは2080年7月まで持ちます。近年作成されたアカウントIDも同じ形式です。アカウントの作成日はTwitterアカウント作成日確認ツールがXから読み取ります。Xの数値についてはTwitter IDのしくみをご覧ください。
Python、JavaScript、SQLでツイートIDを日時に変換
スクリプト、ノートブック、データベース向けに、同じ計算をコードにしました。どれも上の例を出力します。
IDはテキストまたは64ビット整数として読み取ってください。JavaScriptのnumberではこの長さのIDは丸められます。
from datetime import datetime, timezone
def tweet_time(tweet_id):
ms = (int(tweet_id) >> 22) + 1288834974657
return datetime.fromtimestamp(ms / 1000, tz=timezone.utc)
print(tweet_time("1234567890123456789"))
# 2020-03-02 19:54:56.824000+00:00const tweetTime = (id) => new Date(Number(BigInt(id) >> 22n) + 1288834974657);
console.log(tweetTime("1234567890123456789").toISOString());
// 2020-03-02T19:54:56.824Z-- PostgreSQL
SELECT to_timestamp(((1234567890123456789 >> 22) + 1288834974657) / 1000.0);
-- BigQuery
SELECT TIMESTAMP_MILLIS((1234567890123456789 >> 22) + 1288834974657);日時を検索用のツイートIDに変換
計算は逆にもできます。瞬間のミリ秒を上位ビットに戻すと、その瞬間にXが生成しえた最小のIDが得られます。投稿ではなく、瞬間を示すものです。
since_id:その瞬間より後の投稿max_id:その瞬間より前の投稿
Xの検索は両方を受け付けるので、2つのIDで検索を秒単位の期間に絞れます。since:とuntil:は日単位です。クエリの残りはTwitter高度な検索ツールで組み立て、アカウントの特定の日の投稿は日付指定ツイート検索で読めます。
ツイートIDのリスト全体を変換
スプレッドシートやデータセットからIDやリンクの列を貼り付けてください。表は日付で並べ替えられ、投稿IDでない行に印を付け、CSVでダウンロードできます。
- 研究者 分析の前に投稿リンクのコレクションの日時を特定する
- ジャーナリスト タイムライン用に投稿を秒単位で並べる
- 開発者 データセットやログの日時をIDと照合する
CSVの列
input post_id created_at_utc unix_ms unix_seconds local_time time_zone post_url
| 投稿ID | 日付(UTC) | 時刻(UTC) |
|---|---|---|
| 1923456789012345678 | May 16, 2025 | 19:13:29 |
| 1801234567890123456 | Jun 13, 2024 | 12:46:00 |
| 1704598341293015040 | Sep 20, 2023 | 20:48:09 |
| 1612894531578404864 | Jan 10, 2023 | 19:29:57 |
| 1580661436132757504 | Oct 13, 2022 | 20:47:08 |
APIでIDの投稿そのものを取得
変換ツールで分かるのは時刻です。Sorsa APIなら投稿そのもの、つまり本文、いいね、リポスト、リプライ、表示回数、メディア、投稿者のプロフィールを、/tweet-info-bulkで1リクエスト100件のIDやリンクについて取得できます。2010年11月より前の投稿も日時付きで読み取れます。
- 1001リクエストあたりの投稿数
- 最安 $0.0141,000投稿あたり
- 20毎秒リクエスト数(全プラン)
クレジットカード不要・有効期限なし
1回の呼び出しは何が返っても1リクエストで、失敗したリクエストは課金されません。詳しくはSorsa APIの料金をご覧ください。アカウントや検索の投稿をコードなしでファイルにするなら、ツイートのエクスポートを使ってください。
リクエスト
POST https://api.sorsa.io/v3/tweet-info-bulk
ApiKey: YOUR_API_KEY
{"tweet_links": [
"https://x.com/i/status/1234567890123456789",
"https://x.com/i/status/1580661436132757504",
"https://x.com/i/status/1612894531578404864"
]}ツイートIDと日時に関するよくある質問
変換ツールについて
ツイートの投稿日時を調べるには?
上にリンクまたはIDを貼り付けてください。IDに保存された瞬間を読み取り、UTC、現地のタイムゾーン、Unix時間でミリ秒単位まで表示します。
ツイートを開きますか?
いいえ。Xへのリクエストなしにブラウザ内でIDから日時を計算するので、削除された投稿にもオフラインでも使えます。投稿そのものを読むにはTwitterビューアで開いてください。
削除されたツイートの日時も分かりますか?
はい、IDかリンクがあれば分かります。時刻はIDの一部なので、投稿が残っているかどうかは関係ありません。
日時の精度はどのくらいですか?
ミリ秒単位で正確です。Xが投稿の作成時にIDに書き込んだ瞬間だからです。X自身の表示は分単位です。
複数のツイートIDをまとめて変換できますか?
はい。1行に1件ずつ貼り付けてください。表は日付で並べ替えられ、CSVでダウンロードできます。
Snowflake ID
TwitterのSnowflake IDとは何ですか?
Xが2010年11月4日以降の投稿に使っている64ビットのID形式です。先頭の41ビットにミリ秒単位の時刻があり、その後にマシン番号とシーケンスが続きます。そのためIDは時間とともに大きくなり、日時に変換できます。詳しくはTwitter IDのしくみをご覧ください。
Twitterのエポックとは何ですか?
1288834974657、つまり2010年11月4日01:42:54.657 UTCです。Snowflakeは1970年ではなくここから時間を数えるので、変換ツールはこの値を足し戻します。
2010年11月より前のツイートに使えないのはなぜですか?
古い投稿は連番のIDで時刻が含まれていないためです。Sorsa APIなら、投稿が存在すれば日時とともに読み取れます。
ユーザーIDを日時に変換できますか?
近年作成されたアカウントIDは同じ形式なので変換できますが、古くて短いIDに時刻は含まれません。アカウントの作成日にはTwitterアカウント作成日確認ツールを使ってください。
日時から作ったIDは実在のツイートですか?
いいえ。日時から作ったIDは、その瞬間にXが生成しえた最小のIDで、検索のsince_idとmax_id用の目印です。
APIについて
日時だけでなくツイート全体を取得するには?
Sorsa APIの/tweet-info-bulkは、IDやリンクで1リクエスト100投稿を、本文、統計、メディア、投稿者とともに読み取ります。1,000投稿あたり$0.014からです。最初の100リクエストは無料で、クレジットカードは不要です。
IDの投稿そのものを読み取る
1リクエスト100投稿の本文、統計、メディア、投稿者を、1,000件あたり$0.014から取得できます。
クレジットカード不要・有効期限なし。2022年から累計60億リクエスト以上を処理。
ツイートの投稿日時を調べる方法
Xが表示するのは分単位の日時です。IDには、削除済みのものも含め、どの投稿でも正確な瞬間が入っています。
x.com/username/status/1234567890123456789
2020年3月2日(月)19:54:56.824 UTC
TwitterのSnowflake IDが日時を保持するしくみ
2010年11月4日以降、すべての投稿IDはSnowflakeです。先頭に時刻が入った64ビットの数値です。
- 1ビット未使用常に0
- 41ビット時刻Xのエポックからのミリ秒
- 10ビットマシン生成したサーバー
- 12ビットシーケンス同じミリ秒内のID
計算式
time = (ID >> 22) + 1288834974657
ID = (time − 1288834974657) << 22
Python、JavaScript、SQLでツイートIDを日時に変換
同じ計算をコードにしたものです。どれも上の例を出力します。
IDはテキストまたは64ビット整数として読み取ってください。JavaScriptのnumberではこの長さのIDは丸められます。
日時を検索用のツイートIDに変換
上位ビットに時刻を戻すと、その時点でXが作れた最小のIDになります:目印であり、投稿ではありません。
since_id:その瞬間より後の投稿max_id:その瞬間より前の投稿
これらのIDのうち2つで、X検索を秒単位の正確な期間に絞り込めます。
ツイートIDのリスト全体を変換
IDまたはリンクの列を貼り付けると:日付順の表と、CSVが得られます。
- 2025年5月16日 19:13:291923456789012345678
- 2024年6月13日 12:46:001801234567890123456
- 2023年9月20日 20:48:091704598341293015040
- 2023年1月10日 19:29:571612894531578404864
- 2022年10月13日 20:47:081580661436132757504
APIでIDの投稿そのものを取得
Sorsa APIは投稿そのものを、1リクエスト100 ID分、本文、統計、メディア、投稿者付きで読み取ります。
- 1001リクエストあたりの投稿数
- 最安 $0.014/1,000投稿
- 20毎秒リクエスト数(全プラン)
クレジットカード不要・有効期限なし
ツイートIDと日時に関するよくある質問
変換ツールについて
ツイートの投稿日時を調べるには?
上にリンクまたはIDを貼り付けてください。IDに保存された瞬間を読み取り、UTC、現地のタイムゾーン、Unix時間でミリ秒単位まで表示します。
ツイートを開きますか?
いいえ。日付はブラウザ内でIDから算出し、Xへのリクエストは行わないため、削除された投稿やオフラインでも使えます。投稿自体を読むには、Twitterビューアで開いてください。
削除されたツイートの日時も分かりますか?
はい、IDかリンクがあれば分かります。時刻はIDの一部なので、投稿が残っているかどうかは関係ありません。
日付はどのくらい正確ですか?
ミリ秒単位で正確です。Xが投稿の作成時にIDに書き込んだ瞬間だからです。X自身の表示は分単位です。
複数のツイートIDをまとめて変換できますか?
はい。1行に1件ずつ貼り付けてください。表は日付で並べ替えられ、CSVでダウンロードできます。
Snowflake ID
TwitterのSnowflake IDとは何ですか?
Xが2010年11月4日から投稿に使っている64ビットのID形式です。上位41ビットがミリ秒単位の時刻、続いてマシン番号と連番です。そのためIDは時間とともに増え、日付に変換できます。詳しくはTwitterのIDの仕組みをご覧ください。
Twitterのエポックとは何ですか?
1288834974657、つまり2010年11月4日01:42:54.657 UTCです。Snowflakeは1970年ではなくここから時間を数えるので、変換ツールはこの値を足し戻します。
2010年11月より前のツイートに使えないのはなぜですか?
古い投稿は連番のIDで時刻が含まれていないためです。Sorsa APIなら、投稿が存在すれば日時とともに読み取れます。
ユーザーIDを日時に変換できますか?
近年作成されたアカウントのIDも同じ形式なので、変換ツールで日付を出せます。古く短いIDには時刻が含まれません。アカウントの作成日は、Twitterアカウント年齢チェッカーで確認してください。
日時から作ったIDは実在のツイートですか?
いいえ。日時から作ったIDは、その瞬間にXが生成しえた最小のIDで、検索のsince_idとmax_id用の目印です。
APIについて
日時だけでなくツイート全体を取得するには?
Sorsa APIの/tweet-info-bulkは、IDやリンクで1リクエスト100投稿を、本文、統計、メディア、投稿者とともに読み取ります。1,000投稿あたり$0.014からです。最初の100リクエストは無料で、クレジットカードは不要です。
IDの投稿そのものを読み取る
1リクエスト100投稿の本文、統計、メディア、投稿者を、1,000件あたり$0.014から取得できます。
100リクエストを無料でクレジットカード不要・有効期限なし。2022年から累計60億リクエスト以上を処理。
Xが表示する内容と、IDで分かること
Xで確認できること
- 投稿の下の日時(分単位)
- 自分のタイムゾーンのみ
- 公開中の投稿を1件ずつ
IDから分かること
- ミリ秒単位の正確な瞬間
- UTC、現地時間、ISO 8601、Unix時間
- リスト全体と削除された投稿
3つのステップ
リンクまたはIDをコピーする
IDは投稿リンクの/status/の後ろにある長い数字です。リンク全体でも使えます。
1件またはリストを貼り付ける
シート、データセット、メモから1行に1件ずつ。貼り付けると各行が変換されます。
時刻を読む
UTCと現地のタイムゾーン、ISO 8601、Unix時間を、それぞれコピーできます。リストは表とCSVになります。
計算例
計算例
- 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のエポックは2010年11月4日 01:42:54.657 UTCです。IDが大きいほど新しい投稿です。
Python
from datetime import datetime, timezone
def tweet_time(tweet_id):
ms = (int(tweet_id) >> 22) + 1288834974657
return datetime.fromtimestamp(ms / 1000, tz=timezone.utc)
print(tweet_time("1234567890123456789"))
# 2020-03-02 19:54:56.824000+00:00JavaScript
const tweetTime = (id) => new Date(Number(BigInt(id) >> 22n) + 1288834974657);
console.log(tweetTime("1234567890123456789").toISOString());
// 2020-03-02T19:54:56.824ZSQL
-- PostgreSQL
SELECT to_timestamp(((1234567890123456789 >> 22) + 1288834974657) / 1000.0);
-- BigQuery
SELECT TIMESTAMP_MILLIS((1234567890123456789 >> 22) + 1288834974657);リストの日付を管理する人と、CSV
- 研究者は、研究する前に投稿リンクの集合に日付を付けます
- ジャーナリストは、タイムライン用に投稿を秒単位で並べます
- 開発者は、データセットやログの日付をIDと照合します
CSVの列
input post_id created_at_utc unix_ms unix_seconds local_time time_zone post_url
リクエスト
リクエスト
POST https://api.sorsa.io/v3/tweet-info-bulk
ApiKey: YOUR_API_KEY
{"tweet_links": [
"https://x.com/i/status/1234567890123456789",
"https://x.com/i/status/1580661436132757504",
"https://x.com/i/status/1612894531578404864"
]}1回の呼び出しが1リクエスト、失敗したリクエストは課金されません:Sorsa APIの料金。