Temporal Standards
Temporal is based on the following standards:
| Name | Description |
|---|---|
| ISO 8601 | International standard |
| RFC 3339 | Internet standard |
| RFC 9557 | Temporal standard |
The ISO 8601 Standard
ISO 8601 is the International Standard for representing dates and times.
ISO 8601 is a machine-readable format in the form YYYY-MM-DDThh:mm:ssZ.
It was designed to eliminate confusion caused by regional date variations.
It follows a "largest to smallest" hierarchy (year, month, day, hour, minute, second) which ensures that dates are alphabetically sortable.
ISO 8601 avoids confusion between regional formats like:
- MM/DD/YYYY (US format)
- DD/MM/YYYY (European format)
ISO 8601 Strings
An ISO 8601 string represents dates and times in a structured and sortable format:
| Format | Description |
|---|---|
| YYYY | A 4-digit year |
| MM | 2-digit month |
| DD | 2-digit day |
| T | Separator for time |
| hh | Hour |
| mm | Minute |
| ss | Second |
| Z | Zero (Zulu) time Zone |
Examples
| Format | Format | Example |
|---|---|---|
| Date (4-digit year) | YYYY-MM-DD | 2026-05-17 |
| Time (24 hour) | hh:mm:ss | 14:30:00 |
| Date & Time | YYYY-MM-DDThh:mm:ssZ | 2026-05-17T14:30:00Z |
| Date & Time UTC | YYYY-MM-DDThh:mm:ssZ | 2026-05-17T14:30:00Z |
| Date & Time + Offset | YYYY-MM-DDThh:mm:ss±hh:mm | 2026-05-17T14:30:00+01:00 |
| Week Date | YYYY-Www-D | 2026-W20-7 |
| Ordinal (001-366) | YYYY-nnn | 2026-074 |
| Duration format | PnYnMnDTnHnMnS | P3Y6M4DT12H30M5S |
The RF 3339 Format
RFC 3339 is the Internet Standard for Date and Time Formats.
It is a Subset of ISO 8601 designed for use in Internet protocols.
| Feature | Description |
|---|---|
| Format | Follows the ISO pattern YYYY-MM-DDThh:mm:ssZ |
| Time Zones | Requires a Z for time zone UTC or an offset (+05:00) |
| T Separator | Allows the "T" separator to be replaced by " " for readability |
| Web APIs | The default format for timestamps in JSON and RESTful APIs |
| Programming | Modern languages have bult-in support like toISOString() |
The RFC 9557 Format
RFC 9557 is the primary format used by JavaScript Temporal to represent dates.
| Feature | ISO 8601 | RFC 3339 | RFC 9557 |
|---|---|---|---|
| Format | YYYY-MM-DDThh:mm:ssZ | Same | Same |
| UTC Offset | Yes | Yes | Yes |
| IANA Zone | No | No | [America/New_York] |
| Calendar | ISO only | ISO only | [u-ca=hebrew] |
| Compabile | The Standard | Subset of ISO 8601 | Extends 3339 |
RFC 9557 was created because ISO 8601 and RFC 3339 did not contain enough information to determine the geographical time zone or handle future DST (Daylight Saving Time) changes.