Developer 🔒 Runs in your browser — no data sent to servers

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.

Current Unix Timestamp:
Timestamp → Date
Date → Timestamp

One timestamp or date per line, up to 500.

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.

Diagram: Unix time as a line from 0 (1 January 1970) through 1,000,000,000 and 1,700,000,000 to 2,147,483,647, the signed 32-bit limit on 19 January 2038.Seconds since 1 January 1970, 00:00:00 UTC01970-01-0100:00:00 UTCThe Unix epoch10000000002001-09-0901:46:40 UTCOne billion seconds17000000002023-11-1422:13:20 UTC21474836472038-01-1903:14:07 UTCSigned 32-bit limit
A Unix timestamp is a plain count of seconds from the epoch, always in UTC. Time zones only matter when the number is turned back into a local date, and systems that store it in a signed 32-bit integer run out on 19 January 2038.

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.

UnitSame instant written asDigitsWhere it comes from
Seconds173568960010Unix tools, PHP time(), JWT claims
Milliseconds173568960000013JavaScript Date.now(), Java, MongoDB
Microseconds173568960000000016PostgreSQL, Python time.time_ns() / 1000
Nanoseconds173568960000000000019Go, 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.

Guides