ISO 8601 Date Parser & Formatter
Parse any ISO 8601 / RFC 3339 string into its components and format a date into every ISO 8601 variant — calendar, week, ordinal, datetime, duration, interval, recurring. Forgiving tokenizer accepts basic + extended format, comma or dot decimals, Z or offset, negative/expanded years, leap seconds, 24:00:00, week 53. Strict vs lenient modes. Code snippets in JS/Python/Java/Go. 100% client-side.
About ISO 8601 Date Parser & Formatter
Parse any ISO 8601 / RFC 3339 string into its components and format a date into every ISO 8601 variant — calendar, week, ordinal, datetime, duration, interval, recurring. Forgiving tokenizer accepts basic + extended format, comma or dot decimals, Z or offset, negative/expanded years, leap seconds, 24:00:00, week 53. Strict vs lenient modes. Code snippets in JS/Python/Java/Go. 100% client-side. Everything runs locally in your browser — your data never leaves your device.
How to use
- Enter your input in the tool above.
- Adjust any options to your preference.
- Use the Copy or Download buttons to save the result.
- Everything happens locally — your data never leaves your browser.
FAQ
What ISO 8601 formats does this parser accept?
All of them: calendar dates (2026-01-15), week dates (2026-W03-4), ordinal dates (2026-015), times (13:45:30), datetimes with offset (2026-01-15T13:45:30+02:00), durations (P1Y2M10DT2H30M), intervals (start/end or start/duration), and recurring intervals (R5/start/duration). It also accepts basic format (20260115T134530Z), comma decimal separators (13:45:30,5), negative or expanded years (-0050, +12026), leap seconds (:60), and the special 24:00:00 end-of-day.
What is the difference between Z and +00:00?
Both denote UTC (zero offset). Z is the ISO 8601 shorthand for +00:00 and is the most common form. They are semantically identical — the same instant. This tool accepts both interchangeably and lets you normalize to either when re-formatting. Note that -00:00 is also valid in RFC 3339 (it means 'offset unknown, treat as UTC for display only'); we display it as Z in strict mode and preserve it in lenient mode.
How do ISO 8601 week dates work?
Week dates use the ISO week-numbering year, which can differ from the calendar year near January 1 or December 31. Week 1 is the week containing the year's first Thursday (equivalently, the week containing January 4). Weeks run Monday (day 1) through Sunday (day 7). So 2026-W01-1 is the Monday of week 1 of the ISO year 2026, which is 2025-12-29 in calendar form. Years with 53 weeks are those where January 1 falls on Thursday (or Wednesday in a leap year).
What is a leap second and how is it handled?
A leap second is a one-second adjustment (usually 23:59:60 UTC) inserted occasionally to keep UTC in sync with Earth's rotation. JavaScript Date cannot represent it and rolls over to the next day at 00:00:00. This parser correctly recognises 23:59:60 as a valid ISO 8601 time (strict mode, leap-second-aware) and represents it as nanosecond 60 within minute 59 of hour 23; on format-back we emit it literally rather than letting Date silently truncate it.
What extra features does this tool have versus others?
(1) Parses every ISO 8601 variant: calendar, week, ordinal, time, datetime, duration, interval, recurring. (2) Forgiving tokenizer: basic and extended format, comma OR dot decimals, Z or explicit offset, expanded/negative years. (3) Strict vs lenient mode with explicit rejection reasons. (4) Formats a chosen instant into ALL ISO variants simultaneously (calendar, week, ordinal, basic, extended, with/without offset). (5) Week-date ↔ calendar ↔ ordinal conversion both directions. (6) Duration add/subtract with month/week semantics. (7) Interval / recurring parsing and rendering. (8) Leap second (:60) and 24:00:00 end-of-day support. (9) Code snippets in JS/Python/Java/Go. (10) Per-variant copy button. (11) localStorage history (max 20, metadata only). (12) Shareable URL with input + mode (fragment-encoded, never sent to server).
Is my data sent anywhere?
No. All parsing, formatting and arithmetic run locally with JavaScript Date and a custom tokenizer. History is stored in localStorage on this device only and contains metadata (kind of input, whether strict, length of input), never your raw date strings.
Related tools
.bashrc / .zshrc Alias & Config Manager
Build shell aliases, functions, exports, and PATH edits in a visual editor, then export a clean, commented .aliases file sourced from both .bashrc and .zshrc — with shadowing detection against shell builtins and common CLI tools, function suggestions when args are needed, starter packs (git, docker, kubectl, navigation, safety, ls, dev, devops, data science), import of existing rc files, dedupe, history (localStorage), and shareable URL. 100% client-side.
Add / Subtract Date Calculator
Add or subtract years, months, weeks, days, hours, minutes and seconds from a starting date/time. Calendar-day or business-day mode with custom weekend + holiday list. Month-end policy toggle (clamp to last day vs overflow). Repeat/series mode (e.g. every 2 weeks x 10) with CSV export. Shareable URL. 100% client-side.
Age Calculator
Calculate exact age from a birth date in calendar years/months/days (no negative-day bugs) plus totals in months/weeks/days/hours/minutes/seconds. Next-birthday countdown with weekday. Feb-29 birthday policy toggle. Milestones (1,000 days, 10,000 days, 1 billion seconds). Zodiac sign + Chinese zodiac. Age gap comparison. Shareable URL. 100% client-side.