Unix Timestamp Converter
Epoch to Human Date
Convert Unix timestamps (seconds or ms, auto-detected) to ISO, UTC, and local dates, or turn a date back into epoch.
This conversion runs only in your browser — nothing is uploaded.
Now
Timestamp → Date
Seconds and milliseconds are auto-detected (|value| > 1e12 → ms).
Date → Timestamp
Date input is interpreted in the selected zone when converting to epoch.
What is this tool?
This Unix timestamp converter turns epoch integers into human-readable dates and the reverse. Unix time counts seconds (or, in many APIs and JavaScript, milliseconds) since 1970-01-01 00:00:00 UTC.
Paste a numeric timestamp and get live ISO (UTC), a formatted UTC string, and a browser-local wall clock. Or pick a date with an explicit Browser local / UTC zone and copy epoch seconds or milliseconds.
Use it for logs, JWT exp/iat, cron and job schedules, analytics exports, database columns, cache TTLs, and API debugging when two systems disagree by a factor of 1000.
Common use cases
- Confirm whether a log field is seconds or milliseconds before writing a parser
- Translate JWT
exp/iatinto local wall time while debugging auth - Build or check schedule cutovers where UTC midnight ≠ local midnight
How to use
- Read the Now card for live seconds, milliseconds, and ISO — each has Copy.
- Enter a timestamp (Sample loads
1700000000). Results update live; check the unit chip. - Or choose a time zone, pick a date/time, and copy epoch seconds or milliseconds.
- Prefer UTC when the destination system stores UTC; use Browser local only when the wall clock matters.
Seconds vs milliseconds
| Input | Detected unit | ISO (UTC) |
|---|---|---|
1700000000 | Seconds | 2023-11-14T22:13:20.000Z |
1700000000000 | Milliseconds | 2023-11-14T22:13:20.000Z |
0 | Seconds | 1970-01-01T00:00:00.000Z |
Rule of thumb: if the number looks like ~1.7×10⁹ it is almost always seconds; ~1.7×10¹² is milliseconds (Date.now()).
Examples
| Input / setting | Output | Notes |
|---|---|---|
0 | 1970-01-01T00:00:00.000Z | Epoch start (UTC). |
1700000000 | 2023-11-14T22:13:20.000Z | Seconds → ISO. |
1700000000000 | Same ISO as above | Milliseconds auto-detect. |
Date 1970-01-01T00:00:00 + UTC | 0 | Round-trip of epoch 0. |
Practical pitfalls
- Epoch 0 ≠ local midnight: Instant
0is UTC midnight on 1970-01-01. In US/Pacific it is still 1969-12-31 locally — do not format epoch boundaries with a local calendar and assume UTC. - Seconds vs milliseconds off-by-1000 is the most common production bug; always check digit length or
|value| > 1e12. - Unique here vs many converters: live ISO and UTC and local rows, plus an explicit zone on date→epoch so
datetime-localis not ambiguous.
References
Last reviewed: 2026-07-27
Frequently asked questions
- Does this use seconds or milliseconds?
- Both. Values with absolute magnitude greater than 1e12 are treated as milliseconds (JavaScript `Date.now()` scale); smaller integers are treated as seconds. The detected unit appears as a chip under the input.
- What is Unix timestamp 0?
- Epoch 0 is 1970-01-01T00:00:00.000Z (UTC). In a non-UTC local zone the same instant shows a different wall clock — often the evening of 1969-12-31 — which is a common source of off-by-one-day bugs.
- Which time zone is used for date input?
- Choose Browser local or UTC above the date picker. `datetime-local` has no zone of its own; the selector decides how those fields map to epoch seconds.
- Is conversion local?
- Yes. All math runs in your browser; timestamps are not uploaded.