Timestamp Converter
Convert Unix seconds, milliseconds, microseconds, and nanoseconds to ISO 8601 and human-readable dates in any IANA timezone, with a live clock.
Privacy: Conversion happens in your browser using the built-in Intl and Date APIs. Timestamps you paste are never uploaded or logged.
- Unix seconds
- 1785203071
- Unix milliseconds
- 1785203071000
- ISO 8601 (UTC)
- 2026-07-28T01:44:31.000Z
- ISO 8601 (UTC)
- 2026-07-28T01:44:31.000+00:00
- Human (UTC)
- Tuesday, 28 July 2026 at 01:44:31 UTC
- HTTP date (RFC 9110)
- Tue, 28 Jul 2026 01:44:31 GMT
- UTC offset
- +00:00
- Relative
- 4 days ago
Read as unix seconds based on digit count — override it on the left if that is wrong. Timezone names and offsets come from the IANA database built into your browser via Intl, so historical dates use the rules that were actually in force. Everything is computed locally.
What it does
Paste a Unix timestamp or a date string and get every representation you are likely to need at once: seconds, milliseconds, ISO 8601 in UTC, ISO 8601 with the offset of a timezone you pick, a full human-readable rendering, the HTTP date format, and how long ago it was. A live clock at the bottom shows the current time in the same zone so you always have a reference point, and the “Use now” button drops the current second into the input.
Unit detection is automatic and based on digit count, so 10-digit seconds, 13-digit milliseconds, and 19-digit nanoseconds all just work. When the guess is wrong, and it will be for dates far from the present, the unit selector overrides it.
How it works
Parsing and arithmetic use the JavaScript Date object, which counts
milliseconds from 1970-01-01T00:00:00Z. Everything timezone-aware is delegated
to
Intl.DateTimeFormat,
and the zone list comes from
Intl.supportedValuesOf,
which on a current browser returns just over 400 IANA zone names. Those rules
come from the IANA Time Zone Database shipped
with your browser, so offsets are historically correct rather than a flat guess
of the zone’s current offset. Nothing is sent to a server.
ISO 8601, RFC 3339, and the formats that bite
A Unix timestamp is an absolute instant with no timezone attached. The moment you render it as a date you have made a timezone choice, whether deliberately or by accident, and that is where most timestamp bugs come from. A log line that says the incident started on the 27th and a dashboard that says the 28th are usually the same instant seen from two zones.
For text formats, prefer
RFC 3339. It is a strict
profile of ISO 8601 built for internet protocols: full date, full time, and a
mandatory offset, either Z or ±hh:mm. ISO 8601 itself also permits ordinal
dates, week dates, durations, intervals, and omitted offsets, none of which a
typical parser handles, so “ISO 8601” in an API contract is much weaker than it
sounds. If you need to carry a timezone identifier rather than just an offset,
RFC 9557 extends RFC 3339 with
a bracketed suffix such as 2026-07-27T14:30:00+01:00[Europe/London], which is
the format the Temporal API uses.
Offset and timezone are not the same thing, and the difference matters for
anything scheduled in the future. +01:00 tells you what the clock read; it
does not tell you what it will read in November. Store a zone name for future
events and an absolute instant for past ones.
Two smaller traps. Unix time is not real UTC: POSIX defines every day as exactly 86,400 seconds, so leap seconds are unrepresentable and are smeared or repeated by the platform. And the 32-bit signed second counter overflows on 2038-01-19T03:14:07Z, which is close enough now that embedded and legacy systems are worth auditing rather than joking about.
When to reach for it
- Correlating a log line, a trace span, and a database row that were written in three different formats.
- Checking what a JWT
exporiatclaim actually means before deciding a token is broken. - Working out when a certificate, cache entry, or scheduled job fires in the timezone of the people it affects.
- Confirming that a timestamp from another system is seconds and not milliseconds, before you divide by a thousand in the wrong place.
Related tools
- Cron expression parser for the schedule that produced or will produce the instant.
- UUID generator and inspector to pull the embedded timestamp out of a v1, v6, or v7 identifier.
- HTTP status reference for the response whose
DateandExpiresheaders you are reading.
Also nearby: the JWT decoder turns exp and nbf claims
into instants you can paste straight in here, and the
TLS certificate inspector does the same for notBefore
and notAfter.
Frequently asked questions
How does auto-detect decide between seconds, milliseconds, and nanoseconds?+
Why does my timestamp show a different day than the log says?+
Are historical dates converted with the right offset?+
Intl applies the rules that were in force at that instant, so a 2007 date in America/New_York uses the pre-2007 daylight-saving transition dates rather than today's. Offsets for pre-1900 dates were often not whole minutes and are rounded here.What is the difference between ISO 8601 and RFC 3339?+
Z or ±hh:mm), and drops the exotic parts of ISO 8601 such as ordinal dates, week dates, and durations. If you are choosing a format for an API, specify RFC 3339 — it is unambiguous and every language parses it.Does this handle leap seconds?+
Related tools
Cron Expression Builder
Validate standard and Quartz cron expressions, read them in plain English, and see the next 10 fire times in any IANA timezone.
UUID Generator
Generate v4, time-ordered v7, and Nil UUIDs in bulk, in any format, and inspect an existing UUID for its version, variant, and embedded timestamp.
HTTP Status Code Reference
Searchable HTTP status reference with links to the RFC and common causes for each code.