Free tools · No sign-up
Tweet ID to date converter
Every post on X carries its creation time inside its ID. Paste a link or an ID and see the exact moment it was posted, to the millisecond.
No link handy?
- 01
Copy a post's link from X (Share, then Copy link) or just the number at the end of it.
- 02
Paste it into the box.
- 03
Read the date in UTC and in your own time zone, and copy whichever you need.
How a tweet ID holds its date
Since November 2010, X has generated IDs with a system called Snowflake. Each ID is a 64-bit number built from three parts: a timestamp, the ID of the machine that made it, and a sequence number for posts created in the same millisecond.
| Part | Bits | What it holds |
|---|---|---|
| Timestamp | 41 | Milliseconds since 4 Nov 2010, 01:42:54.657 UTC |
| Machine | 10 | Which server generated the ID |
| Sequence | 12 | A counter for IDs made in the same millisecond |
To get the date, shift the ID right by 22 bits to drop the machine and sequence parts, then add the Snowflake epoch, 1288834974657 milliseconds. The result is a normal Unix timestamp. For example, ID 1585841080431321088 decodes to 28 Oct 2022, 03:49:11.734 UTC.
When the date can't be decoded
- Posts from before November 2010. They have small sequential IDs with no timestamp inside, so there is nothing to decode.
- Numbers that aren't tweet IDs. A user ID, a list ID or a random number may decode to a date, but it won't be a post's date. Copy the number after /status/ in the link.
- IDs that decode to the future. No real post can have one, so the tool flags them.
What people use it for
Checking when a screenshot's post really went out. Dating a post that has since been deleted, as long as you have its link. Putting exact times in research notes or a timeline. Working out what time of day your own best posts went out, which feeds into a posting schedule.
Your next week of posts,
done this afternoon.
Sign up with your email, set your brand, and start writing. Upgrade when you want AI and auto-posting.