ISO 8601 Guide

If your status mail says “02/03/26” and half the world reads March while you meant February, this is the fix.

Structural basics

ISO 8601 keeps the pieces in a rigid order: YYYY-MM-DDThh:mm:ss. Add fractions if you need sub-second precision. Finish with a timezone marker—Z for UTC, or an offset like +02:00 / -07:00. Because the format never flips (year → month → day), a sorted list of strings is already chronological.

Examples worth memorizing

Example: Deployment notice

“Deployment window: 2026-03-10T01:00:00Z–2026-03-10T02:00:00Z.” UTC plus the dash makes the interval unambiguous. If stakeholders insist on local context, append “(20:00–21:00 New York)” but keep the ISO span as the source of truth.

Example: Local offset string

“Office hours: 2026-04-05T09:00:00+10:00.” The offset tells everyone you’re speaking in Australian Eastern Daylight Time. When clocks change, you either update to +09:00 or switch to UTC so you’re not rewriting invites every equinox.

Parsing and validation

Never trust a colleague’s locale settings. Browser Date.parse() behaves differently across engines. Paste the string into the Epoch converter instead: it validates the structure, shows the epoch equivalent, and lets you clone the timestamp into another timezone instantly. For batch work, lean on battle-tested libraries (Luxon, Temporal, date-fns) that explicitly target ISO 8601 rather than homemade parsing.

Durations and recurrences

ISO 8601 isn’t just timestamps. Durations like P3DT4H mean “3 days, 4 hours,” and recurrence blocks such as R5/2026-02-22T10:00:00Z/P1D appear in ICS feeds all the time. Decode them by splitting on the slash: the first part is repeats (R + count), the second is the start instant, and the third is the period.

Common mistakes

Patterns you should keep handy

Date only: 2026-02-22 — use for deadlines measured in whole days.
Date + time UTC: 2026-02-22T18:45:00Z — runbooks, deploy windows, audit trails.
Date + local offset: 2026-02-22T18:45:00-05:00 — events tied to a specific city’s legal time (contractual maintenance, payroll). Keep these snippets in your clipboard manager so you’re not retyping every time.

FAQ

Can I omit seconds?
Yes. ISO allows 2026-02-22T18:45Z. Include seconds when precision matters to avoid assumptions.
What is the lowercase t I see sometimes?
Some systems accept lowercase t and z. Stick to uppercase for reliability.
Why do ICS files look different?
ICS uses a compact form (e.g., 20260222T184500Z). It is still ISO 8601 under the hood, just without dashes and colons.

Need to translate another timestamp? Use the Epoch converter.