Unix Timestamp Converter

[ LOCAL TIME ]
2026-09-21 20:00:00
Manila (UTC+08:00) · 1 day ago
UTC2026-09-21 12:00:00
Seconds1789992000
Milliseconds1789992000000
Read the number as
[ EVERY FORM OF IT ]
ISO 86012026-09-21T12:00:00.000Z
UTC2026-09-21 12:00:00 (UTC+00:00)
Manila2026-09-21 20:00:00 (UTC+08:00)
Unix seconds1789992000
Unix milliseconds1789992000000
[ IF IT WERE THE OTHER UNIT ]
Read as milliseconds1970-01-22 01:13:12
Read as seconds: 10 digits. Ten digits is seconds and thirteen is milliseconds, which holds until the year 2286. The other reading is shown beside it so you can check.
A timestamp is an INSTANT and carries no timezone. The wall clock beside it is a rendering of that instant in one place, which is why UTC is always shown too.
[ WHAT THIS IS ]

A Unix timestamp is a count of seconds since 1 January 1970 UTC. That number is the same everywhere on earth at the same moment — a timestamp carries no timezone. The wall clock beside it is a rendering, which is why UTC is always shown too.

The real trap is seconds versus milliseconds. Unix time is seconds, but Date.now() and nearly every JavaScript API hand you milliseconds. Pass milliseconds where seconds are expected and you land in the year 57,000; pass seconds where milliseconds are expected and you get 20 January 1970 — which looks entirely plausible in a log.

Neither mistake throws. So this says which reading it used, and prints the other one beside it: that one lands in 1970 or in the year 33,658, which makes a wrong guess obvious at a glance.

[ QUESTIONS ]

How does it know whether my number is seconds or milliseconds?

By its size. A current timestamp in seconds is ten digits; the same instant in milliseconds is thirteen. Anything above 9,999,999,999 is read as milliseconds, which holds until the year 2286. The page tells you which reading it used and shows what the other one would have given, so a wrong guess is obvious rather than silent — the alternative will land in 1970 or in the year 33,658.

Why does that distinction matter so much?

Because neither mistake throws an error. Unix time is seconds, but Date.now() and almost every JavaScript API hand you milliseconds. Feed milliseconds to something expecting seconds and you get a date around the year 57,000; feed seconds to something expecting milliseconds and you get 20 January 1970 — which looks almost plausible in a log. Expiry timestamps on tokens are the classic casualty.

Does a Unix timestamp have a timezone?

No. It counts seconds since 1 January 1970 UTC and is the same number everywhere on earth at the same moment. The wall clock shown beside it is a rendering of that instant in one place — which is why UTC is always displayed too. If you are storing a moment, store the timestamp; the timezone is a display choice made later.

What is the Y2038 problem?

A signed 32-bit integer runs out at 2,147,483,647 seconds, which is 03:14:07 UTC on 19 January 2038. A system still storing Unix time in 32 bits wraps around to 1901 at that point. The page flags any timestamp past it. If you are choosing a column type today, make it 64-bit.

Can I go the other way, from a date to a timestamp?

Yes — type a date instead of a number. 2026-09-21 or 2026-09-21T14:30:00Z both work. A date with no offset is read as UTC, which is what JavaScript does; if you meant a local wall clock, add the offset (2026-09-21T08:00:00+08:00).

What about microseconds or nanoseconds?

Not supported, deliberately. Postgres, Go and several tracing formats do use them, but a sixteen-digit number is genuinely ambiguous — it is also a valid millisecond value from the distant future — and guessing wrong is worse than declining. Divide by 1,000 or 1,000,000 first and the result is exact.

[ THE MATHS ]
How the unit is detected
10 digitsseconds
13 digitsmilliseconds
Boundary9,999,999,999
Holds untilyear 2286
2,147,483,647 is 03:14:07 UTC on 19 January 2038 — where a signed 32-bit integer overflows and wraps to 1901. Make the column 64-bit.
[ NEXT ]
44JWT GeneratorWhere the unit mistake bites hardest
78Working Days CalculatorDays between two dates
21Date CalculatorAdd or subtract from a date
[ IMPORTANT ]

Runs entirely in your browser; nothing is transmitted. A timestamp is an instant and carries no timezone — the local time shown is a rendering of it, and UTC is always shown beside it. Nothing you type here is sent to our servers — the calculation runs entirely in your browser.