Reading a timestamp string
In 2026-11-11T09:30:00Z the fields run from the largest unit to the smallest: year, month, day, a T, then hours, minutes and seconds. The Z at the end means UTC. Another zone is an offset like +05:30 or -08:00. The moment 2026-11-11T09:30:00Z is 15:00:00 in India (UTC+5:30), so the same instant can also be written with the offset +05:30. Only the spelling changes.
Because the largest unit comes first, strings in the same zone and precision sort in time order with a plain text sort, which is why file names and log lines use it. Every field has a fixed width: 2026-03-05, not 2026-3-5.
Weeks, ordinals and durations
The standard covers more than plain calendar dates. A date can be a week date like 2026-W46-3 (Wednesday of week 46) or an ordinal date like 2026-315 (the 315th day of the year). Both name the same day as 2026-11-11. A duration starts with P: P3Y6M4DT12H30M5S is three years, six months, four days, twelve hours, thirty minutes and five seconds, and PT15M is fifteen minutes. An interval joins two points with a slash, like 2026-11-11/2026-11-18.
The basic format drops the separators (20261111T093000Z). It's shorter and harder to read, and RFC 3339 doesn't allow it.
ISO 8601, RFC 3339 and what code produces
RFC 3339 is the internet profile of ISO 8601, a stricter subset made for protocols and APIs. Its date-time form needs both the T and an offset. It lets you swap the T for a space to make it easier to read, and write t and z in lowercase. It also defines -00:00 for UTC when the local offset isn't known, which isn't the same as Z. JavaScript's toISOString() produces this form, like 2026-11-11T09:30:00.000Z.
A full string like 2026-11-11T09:30:00.000Z takes 24 characters, and the shorter form without milliseconds takes 20. The same moment as a Unix timestamp is 10 digits, so ISO 8601 costs more space and gives you readability and a time zone in return.
Where it goes wrong
A time with no offset is ambiguous. 2026-11-11T09:30:00 means local time to whoever reads it. JavaScript sharpens the trap. A string with only a date, like 2026-11-11, is read as UTC, while a date with a time but no offset is read as local time. Google's Article docs ask for ISO 8601 dates and recommend a time zone, and without one they use Googlebot's. The safe habit is to write Z or an explicit offset every time.