ISO 8601 Parser

Parse ISO 8601 dates, times, durations and intervals into their parts.

  • Runs locally in your browser
  • No upload required

Try it

A date, time, date-time, duration (P…) or interval (start/end).

Kind
datetime
Normalised
2026-07-15T12:34:56.789+05:45
Date
2026-07-15
Time
12:34:56.789
UTC offset (minutes)
345
Weekday
Wednesday (3)
Ordinal day
196
ISO week
2026-W29
Notes
ISO weekday 3 (Wednesday). ISO week 29 of week-year 2026. Day 196 of 2026. Offset +05:45.

Supported formats

Input
text
Output
text

Privacy

Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.

Processing
In your browser
Privacy level
Browser only

Parsed as an ISO 8601 date: 2024-02-29.

How it works

  • Matched the string against the strict ISO 8601 grammar for dates, times, durations and intervals.
  • Validated every component against the proleptic Gregorian calendar, including leap years and ISO week boundaries.
  • Returned the components, a normalised form, and the derived weekday, week and ordinal fields.
  • ISO weekday 4 (Thursday).
  • ISO week 9 of week-year 2024.
  • Day 60 of 2024.

Methodology

  1. Match the string against strict ISO 8601 grammars for calendar, ordinal and week dates, times, durations and intervals.
  2. Validate every numeric component — month lengths, leap years, ordinal day, ISO week number and offset — before accepting it.
  3. Normalise the value and derive the ISO weekday, week number and ordinal day from proleptic-Gregorian arithmetic.

Usage

  1. Enter an ISO 8601 date, time, date-time, duration or interval.
  2. Run the parser.
  3. Read the normalised form, the components and the derived weekday, week and ordinal fields.

Examples

These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.

Calendar date

jsonSelect to copy
{
  "value": "2024-02-29"
}

Date-time with offset

jsonSelect to copy
{
  "value": "2026-07-15T12:34:56.789+05:45"
}

Ordinal date

jsonSelect to copy
{
  "value": "2026-060"
}

Week date

jsonSelect to copy
{
  "value": "2026-W03-5"
}

Duration

jsonSelect to copy
{
  "value": "P1Y2M3DT4H5M6S"
}

Interval with a duration

jsonSelect to copy
{
  "value": "2026-01-01T00:00:00Z/P1M"
}

Limitations

Why strict parsing matters

Lenient parsers silently accept impossible dates or ambiguous separators. This parser only accepts the extended ISO 8601 forms and rejects anything it cannot validate component by component.

Frequently asked questions

Does the parser accept 2026-02-30?
No. Every date is validated against the real length of the month, including leap-year February, and an impossible date is rejected.
Why is a week date normalised to a calendar date?
The calendar date is the unambiguous form; the original week number and weekday are still returned in the components.

Sources

  1. ISO 8601: Date and time format — ISO
  2. RFC 3339: Date and Time on the Internet: Timestamps — IETF