NimbusNexus
Free utility · Runs in your browser

A timestamp converter with every format on screen.

Paste epoch seconds, milliseconds, ISO 8601, RFC 2822 — anything that looks like a date. Auto-detects the format and shows every other representation side by side, including UTC and your local timezone.

Quick set:
Awaiting input
Local timezone:
Epoch · seconds
Epoch · milliseconds
ISO 8601 · UTC
ISO 8601 · local
RFC 2822
Locale string · UTC
Locale string · local
Relative · from now
PRIVACY

Date parsing and formatting run entirely in this browser tab using the standard JavaScript `Date` and `Intl.DateTimeFormat` APIs. No network calls, no logging — we never see what you paste.

What you get

Every format, always on screen.

A converter that auto-detects whatever you paste, renders every common representation simultaneously, and surfaces both UTC and your local timezone — no clicking through tabs.

Auto-detect input format

Pastes are scanned for epoch (s or ms), ISO 8601, RFC 2822, and a few common locale variants. The detected format is shown next to the input so you can verify the parser made the right call.

Eight outputs, all live

Epoch s, epoch ms, ISO UTC, ISO local, RFC 2822, locale string in UTC, locale string in local time, and a relative description ("3 hours ago"). All update on every keystroke.

UTC + local side by side

Most timestamp bugs in production come from a UTC vs local mix-up. Showing both at the same time, with the timezone offset labeled, makes the diff obvious.

Quick shift buttons

One-click jumps for `now`, ±1h, ±1d, ±7d. Useful for sanity-checking "this token expires in 24h" or for setting up test fixtures relative to right now.

Per-row copy

Click any output row to copy that specific representation. The button flashes to confirm — no clipboard guessing.

Sub-second precision

Epoch ms preserves milliseconds; ISO outputs include the `.SSS` fraction. Dates parsed from sub-second epoch ms round-trip exactly.

IANA timezone display

Local timezone is shown by IANA name (`America/New_York`, `Europe/Berlin`) plus the current UTC offset. Distinguishes EST from EDT, BST from GMT.

No sign-up, no logging

Use anonymously, on as many timestamps as you want. No account, no history, no telemetry. Inspect the network tab — there is nothing outbound.

Common uses

For every place a timestamp shows up.

JWT
Decode `exp` and `iat` claims

JWT claims use epoch seconds. Paste the number from the decoder, see the wall-clock time and how long it is from now — useful for spotting "expires in 5 minutes" tokens that show up in support tickets.

"exp": 1762966400 → 2026-05-13 08:14 UTC · in 2 days
LOG
Read a server log timestamp

Many services log in epoch ms or ISO with `Z` suffix; on-call engineers usually want it in their local timezone. Paste the value, read both at a glance.

2026-05-13T08:14:00.123Z → 04:14 EDT · 12 min ago
CRON
Sanity-check a scheduled job

Confirm whether a cron will fire at the right wall-clock time after timezone changes. Pair with the cron builder when one ships; for now, paste the next-fire epoch and verify.

1762976400 → 2026-05-13 11:00 UTC · in 5h
API
Stripe `created` field

Stripe webhooks deliver `created: 1762966400` (epoch seconds). Verify what wall-clock time the event reflects without writing a one-off `new Date(t * 1000)` snippet.

created: 1762966400 → Wed May 13 08:14:00 UTC
DEBUG
Compute a relative window

"Show me errors from the last 24 hours" usually maps to a `since` parameter. Click `−1d` to get the right epoch ms to plug into the query.

now() - 86_400_000 → 1762880000000
TEST
Build a fixture timestamp

Test fixtures often want a date "7 days ago" or "an hour from now" — for token expiry, audit log entries, etc. Use the quick-shift buttons to materialize the value, then copy.

+7d → 1763571200000 (epoch ms)
FAQ

Timestamps, the plain answers.

How does the auto-detect work?

A short scan: pure digits with 10 chars → epoch seconds; 13 chars → epoch ms. Otherwise it tries `Date.parse` (which handles ISO 8601, RFC 2822, and various locale forms) and validates the result. If everything fails, the parse error surfaces. The detected format is shown above the output table.

Why does the local time differ from UTC?

Because your timezone is not UTC. The local outputs use your browser's system timezone — shown by IANA name in the timezone label. If you do not see what you expect, check that your machine's clock and timezone are correct.

What about timezones other than UTC and local?

Not yet. The browser's `Intl.DateTimeFormat` supports any IANA timezone, but we have not surfaced it as an option — most timestamp debugging splits cleanly between UTC (server) and local (your laptop). If you need a third zone, drop us a note via /contact and we will add a picker.

How are sub-second values handled?

Fully. Epoch ms preserves the millisecond field; ISO outputs include `.SSS`. Dates parsed from a sub-second epoch round-trip without loss. Below 1ms (microseconds, nanoseconds) is not representable in JavaScript's `Date` — those need a separate library or BigInt-based math.

Will my data be sent to a server?

No. Date parsing and formatting run entirely in this browser tab via the built-in `Date` and `Intl.DateTimeFormat` APIs. The page makes no network calls. Open DevTools → Network and watch nothing happen as you paste.

Why not Unix microseconds (16 digits)?

JavaScript's `Date` is millisecond-precise, so 16-digit microsecond timestamps would be ambiguous to auto-detect (and lossy if treated as ms). If you have a microsecond timestamp, divide by 1000 to get ms first, or use a dedicated library like `js-temporal` for precise sub-ms work.

When you need more

Storing timestamps in a database that gets the timezone right?

Sign up for the free tier and you get $100 in credits, plus VMs, managed PostgreSQL with native timezone-aware columns, object storage, and zero-config autoscaling across four regions.