Free tool · runs in your browser
Tweet ID to date converter
Every tweet ID contains the exact time the tweet was posted. Paste a tweet URL or ID to read it, in UTC and in your time zone, to the millisecond. Or go the other way: turn a date into a tweet ID for since_id and max_id in a search. Everything runs in your browser; nothing is sent anywhere.
Tweet URL or ID to date
- Posted (UTC)
- 2026-02-06 21:09:45.957 UTC
- Your time
- —
- Unix time (ms)
- 1770412185957
- Unix time (s)
- 1770412185
- Age
- —
- Datacenter · worker · seq
- 13 · 23 · 373
Date to tweet ID (for since_id and max_id)
Tweet IDs grow with time, so one ID marks this moment in a search.
- Boundary ID
- 2006515713438646271
- Tweets from then on
- since_id:2006515713438646271
- Tweets before then
- max_id:2006515713438646271
How it works
How the tweet id to date works
X tweet IDs are Snowflake IDs: a 64-bit number built from the time and the machine that created it.
- 01
Take the ID from the link
The number after
/status/in x.com, twitter.com or mobile links. Query strings like?s=20are ignored. - 02
Shift out the timestamp
Shift the ID right by 22 bits. What is left is the number of milliseconds since X's epoch,
1288834974657(4 November 2010, 01:42:54.657 UTC). - 03
Add the epoch
Adding the epoch gives Unix time in milliseconds, shown in UTC and in your browser's time zone.
- 04
Reverse it for search
For a date, subtract the epoch and shift left by 22 bits. The tool shows the boundary ID to use with
since_id:ormax_id:.
Use case
Search an exact time window
X's since: and until: operators work in whole days. Tweet IDs give you millisecond precision: convert the start and end of your window with the tool above and search for your query since_id:<start> max_id:<end>. Because IDs grow with time, the same trick lets a poller ask only for tweets newer than the last one it saw; see Recipes for a polling loop.
Need this at scale? Get an API key
The search endpoint takes since_id: and max_id: in the query, so you can collect an exact time window or poll for only new tweets. Each response has the posting time already decoded as createdAt.
FAQ
Frequently asked questions
How do I find out when a tweet was posted?
Copy the tweet's link (Share, then Copy link) and paste it into the converter. The number after /status/ is the tweet ID, and the first 41 bits of that number are the posting time in milliseconds. The result is exact, even when the tweet has been deleted.
Does this work for deleted tweets?
Yes. The date is encoded in the ID itself, so you only need the ID or an old link. Nothing is looked up on X; the calculation runs in your browser.
Why does it say my ID has no date?
IDs from before 4 November 2010 were counted up one by one and contain no timestamp. Only Snowflake IDs, used since then, carry the time they were created.
Does it work for user IDs, list IDs or DM IDs?
Yes, for any Snowflake ID. Newer accounts have long Snowflake user IDs (18 or 19 digits), and the result is the account's creation time. Older accounts have shorter sequential user IDs without a date.
How accurate is the date to tweet ID conversion?
Exact to the millisecond. The boundary ID is the largest ID X could have assigned in the millisecond before your time, so since_id with that value returns tweets from your time on, and max_id returns tweets before it.
What are datacenter, worker and sequence?
The lower 22 bits of the ID: which datacenter and worker machine generated it, and a counter for IDs created in the same millisecond. They are useful for debugging, not for analysis.
More free tools
Other tools
- Twitter user ID finder →@username to numeric user ID, and user ID back to the current username.
- Follower count checker →Followers, following and tweet counts, verification type and creation date of an account.
- Thread reader →Unrolls an X thread into clean text, with copy and Markdown download.
- Tweets to CSV →The latest ~20 tweets of an account as a table with CSV download.
- Shadowban checker →Search ban, search suggestion ban, reply deboosting and account status of an @username, as signals.