Z

Epoch / Unix Timestamp Converter

Convert Unix timestamps (seconds or milliseconds) to human-readable UTC dates and back.

Runs in your browser — files never leave your device

ISO 8601 (UTC)
2021-01-01T00:00:00.000Z
UTC string
Fri, 01 Jan 2021 00:00:00 GMT

How it works

Unix (epoch) time is the number of seconds elapsed since 1970-01-01 00:00:00 UTC — a single integer that identifies an instant with no time-zone, calendar, or DST baggage, which is why databases, APIs, and log files use it everywhere. Paste a timestamp, choose its unit, and the tool renders it two ways: an ISO 8601 string and a human-readable UTC string. The classic example: 1609459200 seconds is 2021-01-01T00:00:00.000Z, shown alongside “Fri, 01 Jan 2021 00:00:00 GMT”.

The unit is explicit, not guessed: pick seconds and the value is multiplied by 1,000 internally; pick milliseconds and it is used as-is. As a rule of thumb, current timestamps in seconds have 10 digits and millisecond ones have 13 — JavaScript’s Date.now() returns milliseconds, while most Unix APIs and JWT claims use seconds. A mixed-up unit is instantly recognizable: reading 1700000000 as milliseconds yields 1970-01-20T16:13:20.000Z, so a result stuck in January 1970 means your value was seconds all along.

Output is always UTC, deliberately. The timestamp itself is zone-free — the same number is the same instant in Tokyo and Toronto — so a UTC reading is stable and unambiguous across servers, log files, and teammates. Negative values work too and simply land before the epoch: -86400 seconds is 1969-12-31T00:00:00.000Z, exactly one day before it. For a fixed reference, 1767225600 seconds is 2026-01-01T00:00:00.000Z — midnight, New Year 2026.

Typical jobs: decoding iat and exp claims from JWTs, making sense of created_at columns and API payloads, correlating events across services that log in different local zones, and checking cache or token expiry moments. Anywhere a raw number needs to become a date you can reason about, the conversion is one paste away.

Frequently asked questions

How do I know if my timestamp is in seconds or milliseconds?
Count the digits: present-day timestamps have 10 digits in seconds and 13 in milliseconds. JavaScript’s Date.now() produces milliseconds, while most Unix tools, APIs, and JWT claims use seconds. Picking the wrong unit is obvious in the output — 1700000000 read as milliseconds gives 1970-01-20T16:13:20.000Z, so a date parked in January 1970 means the value was actually seconds.
Which time zone is the result shown in?
Always UTC. A Unix timestamp has no time zone — it denotes one instant worldwide — so rendering it in UTC gives a stable answer that matches server logs and avoids the ambiguity of local clocks. Convert to a local zone afterwards if you need wall-clock time; the instant itself doesn’t change.
What is the year 2038 problem, and does it affect this converter?
Timestamp 2147483647 — 2038-01-19T03:14:07.000Z — is the largest value a signed 32-bit integer can hold, so legacy systems that store Unix time in 32 bits overflow at that moment. This converter uses JavaScript’s 64-bit date math, valid to the year 275760, so post-2038 timestamps decode fine here. The 2038 limit is a property of old binaries and file formats, not of Unix time itself.
Do negative timestamps work?
Yes — they represent instants before the epoch. -86400 seconds converts to 1969-12-31T00:00:00.000Z, exactly one day before 1970-01-01. Pre-1970 dates such as birth dates show up as negative numbers in many systems.
How does Unix time handle leap seconds?
It ignores them: every Unix day is exactly 86,400 seconds, and when a leap second is inserted, the timestamp effectively repeats a second rather than counting it. In exchange, timestamps stay simple and continuous — which is what you want for logs and arithmetic — while the world’s clocks absorb the adjustment.
How do I get the current Unix timestamp?
Run date +%s in any Unix shell for seconds, or Date.now() in a browser console or Node for milliseconds. Math.floor(Date.now() / 1000) converts the JavaScript value to standard seconds. Paste any of those straight into this tool to sanity-check them.
Is the timestamp I paste sent anywhere?
No — conversion happens entirely in your browser using its built-in date functions. Nothing is uploaded, logged, or stored.