UTC: 07:58:03
Your local time: 07:58 AM

ISO 8601 — Date & Time Formats

The current ISO 8601 date is 2026-05-09 and the week is 2026-W19 (at build time). The formats below update in real time.

Current ISO 8601 Date-Time
2026-05-09T07:58:03.083Z
Date (YYYY-MM-DD)
2026-05-09
Time (HH:mm:ss.sss)
07:58:03.083
Date-Time (Full)
2026-05-09T07:58:03.083Z
Week (YYYY-Www)
2026-W19
Ordinal (YYYY-DDD)
2026-129
UTC String
Sat, 09 May 2026 07:58:03 GMT

What Is ISO 8601?

ISO 8601 is an international standard published by the International Organization for Standardization (ISO) that defines a clear, unambiguous way to represent dates, times, time zones, durations, and recurring intervals as text strings. The canonical form for a combined date and time is YYYY-MM-DDTHH:mm:ss.sssZ, where YYYY is the four-digit year, MM the two-digit month, DD the two-digit day, T a literal separator, HH the hours on a 24-hour clock, mm the minutes, ss the seconds, sss the fractional seconds, and Z the UTC designator. When a local timezone offset is used instead of UTC, the Z is replaced with an offset like +05:30 or -04:00.

The standard was first published in 1988 as ISO 8601:1988 and consolidated several earlier national and international date-format standards into a single, globally applicable specification. It was revised in 2000 (ISO 8601:2000), again in 2004 (ISO 8601:2004), and most recently restructured into two parts in 2019: ISO 8601-1:2019 covering basic representations, and ISO 8601-2:2019 covering extensions such as date ranges, seasons, and uncertain or approximate dates. Despite these revisions, the core format has remained remarkably stable since the original publication, which is a testament to how well the initial design addressed the problem of date-time ambiguity.

Why ISO 8601 Is the Global Standard

The fundamental advantage of ISO 8601 is that it eliminates ambiguity. Consider the date string "04/05/06." In the United States, this is read as April 5, 2006. In the United Kingdom and most of Europe, it means May 4, 2006. In parts of Asia, it could be interpreted as May 6, 2004. The ISO format 2006-04-05 can only mean one thing: April 5, 2006. There is no room for misinterpretation regardless of the reader's cultural background or locale conventions.

A second major advantage is lexicographic sortability. Because ISO 8601 strings place the most significant component first (year, then month, then day, then hour, then minute, then second), sorting them as plain text strings automatically produces chronological order. This property is enormously valuable in databases, file systems, log files, and any context where dates must be ordered. A directory full of files named 2026-01-15_report.pdf, 2026-03-22_report.pdf, and 2026-02-08_report.pdf sorts correctly with a simple alphabetical sort. No date-parsing logic is needed.

ISO 8601 has been adopted as the default or preferred date format by a wide range of standards and organizations. The World Wide Web Consortium (W3C) uses ISO 8601 in HTML date inputs and the datetime attribute. The Internet Engineering Task Force (IETF) references it in RFC 3339, which governs timestamps in internet protocols. The EDIFACT and UN/CEFACT standards for electronic data interchange mandate ISO 8601. Government agencies, financial institutions, scientific publications, and healthcare systems around the world have converged on this format for data exchange precisely because it removes the ambiguity that causes errors, delays, and costly misunderstandings.

ISO 8601 Format Reference

The standard defines several sub-formats, each serving a different purpose. Understanding the full range helps you choose the right representation for any given context.

Date: The date-only format is YYYY-MM-DD, such as 2026-04-28. The extended format uses hyphens as separators, while the basic format YYYYMMDD omits them. The extended form is almost universally preferred because it is easier for humans to read.

Time: The time-only format is HH:mm:ss, optionally followed by fractional seconds (HH:mm:ss.sss). A timezone designator can be appended: Z for UTC, or an offset like +02:00. Midnight can be represented as either 00:00:00 (start of day) or 24:00:00 (end of day), though the latter is used less frequently.

Date-Time: A combined date and time value uses the letter T as a separator: YYYY-MM-DDTHH:mm:ss.sssZ. This is the most commonly encountered ISO 8601 format in APIs, databases, and log files. The T is required by the standard, though some implementations accept a space in its place.

Week Date: ISO 8601 defines a week-based calendar where weeks start on Monday and the first week of the year is the one containing the first Thursday of January. Week dates are written as YYYY-Www or YYYY-Www-D, where ww is the week number (01 through 53) and D is the day of the week (1 for Monday through 7 for Sunday). For example, 2026-W18-2 is Tuesday of week 18 in 2026.

Ordinal Date: The ordinal date format is YYYY-DDD, where DDD is the day of the year from 001 to 365 (or 366 in a leap year). For example, 2026-118 represents the 118th day of 2026, which is April 28. This format is popular in astronomy, military applications, and industries where a simple day count within the year is more practical than a month-day combination.

Duration: Durations are written with a leading P (for "period"): P3Y6M4DT12H30M5S means 3 years, 6 months, 4 days, 12 hours, 30 minutes, and 5 seconds. The T separates date components from time components within a duration, just as it does in a date-time value. Durations can also be expressed in weeks: P2W means two weeks.

Interval: Time intervals express a span between two points or a start point plus a duration. They use a solidus (/) as a separator: 2026-01-01/2026-06-30 or 2026-01-01/P6M. Intervals are used in scheduling, project management, and data queries where a range of time must be expressed compactly.

Historical Context

Before ISO 8601, the international landscape of date formats was chaotic. The United States used month-day-year, most of Europe used day-month-year, and East Asian countries often used year-month-day. Even within a single country, different industries and government agencies used different formats. Cross-border trade, scientific collaboration, and the emerging world of electronic data exchange all suffered from this inconsistency.

The International Organization for Standardization, founded in 1947 and headquartered in Geneva, Switzerland, began working on a universal date format in the 1970s. Earlier standards such as ISO 2014 (for calendar dates), ISO 2015 (for ordinal dates), ISO 2711 (for week dates), and ISO 3307 (for time of day) each addressed a piece of the puzzle. ISO 8601 consolidated all of these into a single coherent framework when it was first published on June 15, 1988.

The 2004 revision (ISO 8601:2004) clarified several ambiguities in the earlier text, tightened the grammar for duration strings, and formalized the rules for reduced-precision dates (such as 2026-04 for a month without a day, or simply 2026 for a year). The 2019 revision split the standard into two parts: Part 1 (ISO 8601-1:2019) covering the widely used basic and extended representations, and Part 2 (ISO 8601-2:2019) introducing profiles for uncertain, approximate, and qualified dates and times. Part 2 introduced notation for expressing concepts like "approximately 1920" or "between 1914 and 1918," which are valuable in archival, historical, and genealogical contexts.

ISO 8601 in Software

ISO 8601 enjoys first-class support in virtually every programming language and platform used today. In JavaScript, the Date constructor parses ISO 8601 strings natively: new Date('2026-04-28T14:30:00.000Z') produces a valid Date object. The toISOString() method on any Date object returns the full ISO 8601 date-time string in UTC. For more advanced needs, the upcoming Temporal API (already available in some environments) provides dedicated Temporal.PlainDate, Temporal.PlainTime, and Temporal.ZonedDateTime types that parse and produce ISO 8601 strings with full timezone support.

In Python, the datetime module supports ISO 8601 through datetime.fromisoformat() (added in Python 3.7 and expanded in 3.11 to support the Z suffix) and datetime.isoformat() for output. Libraries like python-dateutil and arrow provide even more flexible parsing. In SQL databases, PostgreSQL supports ISO 8601 input natively in timestamp columns, MySQL recognizes the format in STR_TO_DATE(), and SQL Server parses it through CONVERT() and CAST(). APIs built with REST and GraphQL overwhelmingly use ISO 8601 strings for all date-time fields because the format is self-describing, human-readable, and trivially parseable in every client language.

When designing APIs, ISO 8601 is considered best practice for several reasons: it is timezone-aware (the Z or offset suffix prevents silent timezone misinterpretation), it serializes to JSON as a plain string without any special encoding, and it sorts correctly as text. Major API style guides from Google, Microsoft, and GitHub all mandate or strongly recommend ISO 8601 for date-time representation in request and response payloads.

ISO 8601 Quick Reference

FormatPatternExample
DateYYYY-MM-DD2026-05-09
Date-Time (UTC)YYYY-MM-DDTHH:mm:ss.sssZ2026-05-09T07:58:03.150Z
WeekYYYY-Www2026-W19
OrdinalYYYY-DDD2026-129
DurationPnYnMnDTnHnMnSP1Y6M15DT3H30M
Intervalstart/end2026-01-01/2026-12-31

Frequently Asked Questions

What is ISO 8601?

ISO 8601 is an international standard for the representation of dates, times, durations, and intervals. Published by the International Organization for Standardization, it defines the format YYYY-MM-DDTHH:mm:ss.sssZ for combined date-time values. The standard eliminates ambiguity caused by regional date format differences and ensures that dates sort correctly as plain text strings.

Why does ISO 8601 use the letter T as a separator?

The T separator clearly delimits the date portion from the time portion of a combined date-time string. Without it, a sequence of digits like 20260428143000 would be difficult to parse visually and programmatically. The T character was chosen because it is unambiguous, easy to detect in code, and does not conflict with any digit or common punctuation mark used in dates or times.

What does the Z at the end mean?

The Z stands for "Zulu time," the military and aviation term for Coordinated Universal Time (UTC). When a date-time string ends with Z, the time value is expressed in UTC. If a local timezone offset is used instead, the Z is replaced by an offset such as +05:30 or -04:00, indicating the difference from UTC.

What is an ISO week number?

An ISO week number is defined by ISO 8601 as a week that starts on Monday. The first week of the year (W01) is the week that contains the first Thursday of January, which is equivalent to saying it contains January 4. A year has either 52 or 53 ISO weeks. Week dates are written as YYYY-Www (e.g., 2026-W18) or YYYY-Www-D to include the day of the week.

How do I parse an ISO 8601 date in JavaScript?

The built-in Date constructor in JavaScript natively parses ISO 8601 strings. Call new Date('2026-04-28T14:30:00.000Z') to create a Date object. To produce an ISO string from a Date, use date.toISOString(). For advanced use cases involving timezones and calendar math, the Temporal API (available in modern runtimes) provides Temporal.Instant.from() and Temporal.ZonedDateTime.from().

Is ISO 8601 the same as RFC 3339?

RFC 3339 is a profile of ISO 8601 defined by the Internet Engineering Task Force for use in internet protocols. It restricts the full ISO 8601 grammar to a smaller subset: it requires the T separator (or allows a space), mandates a timezone designator (Z or numeric offset), and does not support week dates, ordinal dates, or durations. In practice, most date-time strings you encounter in APIs and JSON conform to both standards simultaneously.

What is an ordinal date?

An ordinal date represents a day as the year followed by the day number within that year, written as YYYY-DDD. For example, 2026-001 is January 1 and 2026-365 is December 31. Leap years have day 366. This format is common in scientific computing, satellite operations, and military contexts where a sequential day count is more practical than month-day notation.