ISO 8601 / RFC 3339 Formatter
Paste any date or epoch and read it in every standard form at once — offset decoded, standards checked, entirely on this device.
The local-offset row renders in this zone, and a date with no offset of its own is read in it — flagged inline when that happens.
Every standard form of your date appears here as you type — press Now for the current instant.
Offset, decoded
Which standards does this text satisfy?
- ISO 8601
- RFC 3339
- RFC 2822
Press ? for shortcuts
Do it offline:$ date -u -Iseconds -d @1784937600
How to use it
- Paste a date, timestamp or epoch value — or press Now for the current instant.
- Read the same instant in all eleven rows, each with its own copy control.
- Read the offset panel: the designator's token, sign and distance from UTC, decoded.
- Check the standards strip — pass or fail per standard, every verdict chip-explained.
One paste, every standard form at once: ISO 8601 extended, basic, ordinal and week dates, RFC 3339, RFC 2822, HTTP-date, SQL and epoch rows for one instant. An offset panel decodes the designator, and three verdict chips answer the real question — which standard does this exact text satisfy? Nothing leaves this device.
Examples
2026-07-25T09:00:00+05:302026-07-25T03:30:00ZThe +05:30 designator sits 330 minutes east, so the panel reads 5 h 30 min ahead of UTC and the UTC row lands at 03:30 — the one shape ISO 8601 and RFC 3339 agree on completely.
17849376002026-07-25T00:00:00ZAn epoch value is a count, not a notation: all three verdict chips honestly fail — no syntax to judge — while the table still renders every form; the badge names the unit.
Sat, 25 Jul 2026 09:00:00 GMT2026-07-25T09:00:00ZThe e-mail and HTTP header shape: RFC 2822 passes, both ISO verdicts fail, and the named zone GMT draws an obsolete-form chip — new output takes numeric offsets like +0000 instead.
2026-W30-62026-07-25T00:00:00ZA week date — Saturday of week 30, day 206 in the ordinal row — landing on the instant example 2 named. ISO 8601 passes; RFC 3339 fails, its chip naming the extended-calendar-only rule.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
T versus space, and lowercase t and z
A space where the T belongs fails both verdicts, chip attached, though the value still converts via a lenient rung. Lowercase t or z cuts the other way: RFC 3339 §5.6 permits it, so the verdicts hold under a nuance chip.
Comma or dot before the fraction
A decimal comma is legal ISO 8601 — 09:00:00,5 names half a second past nine — while RFC 3339 admits only the dot, splitting the verdicts. Either spelling carries its half second into the UTC row as .500.
Week, ordinal and basic forms are ISO-only
2026-W30-6, 2026-206 and 20260725T093000Z are all valid ISO 8601 and all fail RFC 3339. One deliberate divergence: a bare 20260725 reads here as a basic calendar date, while the Unix Timestamp Converter reads the same eight digits as epoch seconds.
The offset is optional in ISO 8601, mandatory in RFC 3339
2026-07-25T09:00:00 with nothing after it is legal ISO 8601 local time; RFC 3339 refuses any timestamp that cannot state its distance from UTC. This page reads the zone-less form in your selected zone — with a warning saying so.
Z, +00:00 and -00:00 are three different statements
All three pin one instant — identical rows here. Z and +00:00 assert UTC and pass both standards; -00:00 means the local offset is unknown (RFC 3339 §4.3), and ISO 8601 outlaws it — zero takes the plus sign there.
Common errors
Not a timestamp or a recognizable date — try 1784937600 or 2026-07-25T00:00:00Z- Nothing on the parse ladder matched — not the ISO grammars, not RFC 2822, not an epoch count. Reduced precision such as 2026-07, durations like PT1H30M and intervals land here on purpose, never guessed at.
Outside the representable range — ECMAScript dates cover ±8,640,000,000,000,000 ms around 1970-01-01T00:00:00Z (about 271821 BCE to 275760 CE)- ECMA-262 caps date arithmetic at ±100,000,000 days from the epoch. The boundary instant +275760-09-13T00:00:00Z still converts; one millisecond past it is refused. Expanded six-digit years are the usual trigger here.
Unknown time zone "Asia/Kolkatta" — use an IANA name like "Europe/London"- The offset zone must be a name your browser's zone database knows; one wrong letter — Kolkatta for Kolkata — fails the lookup before parsing begins. In practice it arrives via a hand-edited share link.
Input is larger than the 4 KB limit for this tool. Paste a single date or timestamp — for files use the CLI: date -u -Iseconds -d @1784937600- This page converts exactly one value, so text past 4 KB cannot be a date and is declined whole, your paste kept. Multi-line timestamp lists — and unit education — belong to the Unix Timestamp Converter, built for batches.
FAQ
ISO 8601 vs RFC 3339 — what is the difference?
RFC 3339 is a small internet profile of ISO 8601: one shape — extended calendar date, T, full time, mandatory numeric offset, dot fractions — where the parent standard also grants week and ordinal dates, basic forms, comma fractions and local times. Nearly everything the RFC accepts is ISO 8601 too; -00:00 is the exception it defines and ISO forbids. When both rows coincide, a profile-equality chip says so.
Do Z, +00:00 and -00:00 mean the same thing?
The same instant, not the same knowledge. Emit Z or +00:00 when a system truly runs in UTC; reserve -00:00 for RFC 3339's narrow case of a timestamp whose local offset nobody recorded — strict ISO 8601 consumers may reject that spelling.
Is a date-time without an offset valid?
As ISO 8601 local time, yes — but it names a wall-clock reading, not an instant: 09:00 happens at a different moment in every zone, which is why RFC 3339 and RFC 2822 refuse the form. Exchange timestamps with the offset attached.
How do I print an ISO 8601 timestamp from the command line?
GNU date has a flag for it: date -u -Iseconds prints the current UTC instant with a numeric +00:00 offset, and -d @1784937600 formats that epoch instead of now. BSD and macOS date accept -Iseconds but spell the epoch flag -r. In code, JavaScript's toISOString() and Python's datetime.isoformat() emit it directly.
Keyboard shortcuts
- ⌘/Ctrl + Enter
- Re-run the conversion.
- ⌘/Ctrl + S
- Download the table as .txt.
- ⌘/Ctrl + C
- Copy the ISO 8601 UTC row while nothing is selected.
- ⌘/Ctrl + Shift + C
- Copy that row even over a selection.
- t
- Cycle the theme (inactive while typing).
- ? or ⌘/Ctrl + /
- Show the keyboard help overlay.
- Esc
- Dismiss the topmost dialog; input stays put.