Timestamp to Date Converter
Turn a Unix timestamp into a readable date in any time zone, with the UTC and ISO 8601 forms beside it.
One timestamp or date per line, up to 500.
Paste the code into a Discord message; everyone sees it in their own time zone and language.
Convert this timestamp in your own code.
Convert a Unix Timestamp to a Readable Date
A Unix timestamp is the number of seconds that have passed since 1 January 1970 at 00:00:00 UTC. Logs, APIs, databases and JWT claims all store time this way because one integer is unambiguous: it names an instant, not a local reading of the clock. The cost is that nobody can read it at a glance. This page opens the Timestamp Converter on that job — paste the number, read the date.
The result appears four ways at once. The first line is the instant in whichever time zone is selected at the top right, the second is <abbr title="Coordinated Universal Time">UTC, the third is the ISO 8601 form that most APIs expect back, and the fourth is the distance from now in plain words. Everything is computed in your browser; the number never leaves the page.
Seconds, milliseconds and the digits that tell them apart
The same instant is written with a different number of digits depending on the unit, and reading the unit wrong throws the date off by decades. The converter guesses from the digit count and tells you what it assumed; the Unit menu overrides it when your data is unusual.
| Unit | Same instant written as | Digits | Where it comes from |
|---|---|---|---|
| Seconds | 1735689600 | 10 | Unix tools, PHP time(), JWT claims |
| Milliseconds | 1735689600000 | 13 | JavaScript Date.now(), Java, MongoDB |
| Microseconds | 1735689600000000 | 16 | PostgreSQL, Python time.time_ns() / 1000 |
| Nanoseconds | 1735689600000000000 | 19 | Go, Prometheus, high-resolution logs |
A ten-digit number stays ten digits until 20 November 2286, so the digit count is a safe test for anything dated in this century. Negative numbers are dates before 1970 and convert normally.
Time zones are a display choice, not part of the number
A timestamp has no zone. When a colleague says a log entry is an hour off, the timestamps usually agree and only the rendering differs. Switch the zone at the top right and the same number produces a different local time while UTC and ISO 8601 stay put — a quick way to prove which side of a conversation is looking at a different clock.
Daylight saving is handled by the zone database, so a summer date in Europe/Berlin renders at UTC+02:00 and a winter one at UTC+01:00 without you doing anything.
Converting in code
The Code tab under the converter prints the conversion for the timestamp on screen in JavaScript, Python, PHP, SQL, Go, Java, C# and Bash, so you can copy it straight into the place the number came from. Two traps are worth remembering: JavaScript's new Date() wants milliseconds, so a ten-digit timestamp must be multiplied by 1000, and a MySQL FROM_UNIXTIME() result is rendered in the server's time zone, not UTC.
Going the other way
The right-hand pane does the reverse: pick a date and time and it returns the timestamp in seconds and milliseconds. There is a page for that direction too — Date to Timestamp — and one for milliseconds specifically. If the number came from a Discord message, Discord timestamps explains the <t:…> codes and builds them for you.