Jump to content

ISO 8601

From Wikipedia, the free encyclopedia
(Redirected from Iso8601)
Current date and time expressed according to ISO 8601 [refresh]
Date2024-10-31
Time in UTC13:29:22Z
T132922Z
Date and time in UTC2024-10-31T13:29:22Z
20241031T132922Z
Date and time with the offset2024-10-31T01:29:22−12:00 UTC−12:00 [refresh]

2024-10-31T13:29:22+00:00 UTC+00:00 [refresh]

2024-11-01T01:29:22+12:00 UTC+12:00 [refresh]
Week2024-W44
Week with weekday2024-W44‐4
Ordinal date2024‐305

ISO 8601 is an international standard covering the worldwide exchange and communication of date and time-related data. It is maintained by the International Organization for Standardization (ISO) and was first published in 1988, with updates in 1991, 2000, 2004, and 2019, and an amendment in 2022.[1] The standard provides a well-defined, unambiguous method of representing calendar dates and times in worldwide communications, especially to avoid misinterpreting numeric dates and times when such data is transferred between countries with different conventions for writing numeric dates and times.

ISO 8601 applies to these representations and formats: dates, in the Gregorian calendar (including the proleptic Gregorian calendar); times, based on the 24-hour timekeeping system, with optional UTC offset; time intervals; and combinations thereof.[2] The standard does not assign specific meaning to any element of the dates/times represented: the meaning of any element depends on the context of its use. Dates and times represented cannot use words that do not have a specified numerical meaning within the standard (thus excluding names of years in the Chinese calendar), or that do not use computer characters (excludes images or sounds).[2]

In representations that adhere to the ISO 8601 interchange standard, dates and times are arranged such that the greatest temporal term (typically a year) is placed at the left and each successively lesser term is placed to the right of the previous term. Representations must be written in a combination of Arabic numerals and the specific computer characters (such as "‐", ":", "T", "W", "Z") that are assigned specific meanings within the standard; that is, such commonplace descriptors of dates (or parts of dates) as "January", "Thursday", or "New Year's Day" are not allowed in interchange representations within the standard.

History

[edit]

The first edition of the ISO 8601 standard was published as ISO 8601:1988 in 1988. It unified and replaced a number of older ISO standards on various aspects of date and time notation: ISO 2014, ISO 2015, ISO 2711, ISO 3307, and ISO 4031.[3] It has been superseded by a second edition ISO 8601:2000 in 2000, by a third edition ISO 8601:2004 published on 1 December 2004, and withdrawn and revised by ISO 8601-1:2019 and ISO 8601-2:2019 on 25 February 2019. ISO 8601 was prepared by,[4] and is under the direct responsibility of, ISO Technical Committee TC 154.[5]

ISO 2014, though superseded, is the standard that originally introduced the all-numeric date notation in most-to-least-significant order [YYYY]-[MM]-[DD]. The ISO week numbering system was introduced in ISO 2015, and the identification of days by ordinal dates was originally defined in ISO 2711.

Issued in February 2019,[6] the fourth revision of the standard ISO 8601-1:2019 represents slightly updated contents of the previous ISO 8601:2004 standard,[7][8] whereas the new ISO 8601-2:2019 defines various extensions such as uncertainties or parts of the Extended Date/Time Format (EDTF).[9][10][11][12][13][14]

An amendment was published in October 2022 featuring minor technical clarifications and attempts to remove ambiguities in definitions. The most significant change, however, was the reintroduction of the "24:00:00" format to refer to the instant at the end of a calendar day.

History of published editions and amendments
Name Description
ISO 8601:1988 Data elements and interchange formats — Information interchange — Representation of dates and times
ISO 8601:1988/COR 1:1991 Data elements and interchange formats — Information interchange — Representation of dates and times — Technical Corrigendum 1
ISO 8601:2000 Data elements and interchange formats — Information interchange — Representation of dates and times
ISO 8601:2004 Data elements and interchange formats — Information interchange — Representation of dates and times
ISO 8601-1:2019 Date and time — Representations for information interchange — Part 1: Basic rules
ISO 8601-2:2019 Date and time — Representations for information interchange — Part 2: Extensions
ISO 8601-1:2019/Amd 1:2022 Date and time — Representations for information interchange — Part 1: Basic rules — Amendment 1: Technical corrections

General principles

[edit]
  • Date and time values are ordered from the largest to smallest unit of time: year, month (or week), day, hour, minute, second, and fraction of second. The lexicographical order of the representation thus corresponds to chronological order, except for date representations involving negative years or time offset. This allows dates to be naturally sorted by, for example, file systems.
  • Each date and time value has a fixed number of digits that must be padded with leading zeros.
  • Representations can be done in one of two formats – a basic format with a minimal number of separators or an extended format with separators added to enhance human readability.[15][16] The standard notes that "The basic format should be avoided in plain text."[17] The separator used between date values (year, month, week, and day) is the hyphen, while the colon is used as the separator between time values (hours, minutes, and seconds). For example, the 6th day of the 1st month of the year 2009 may be written as "2009-01-06" in the extended format or as "20090106" in the basic format without ambiguity.
  • For reduced precision,[18] any number of values may be dropped from any of the date and time representations, but in the order from the least to the most significant. For example, "2004-05" is a valid ISO 8601 date, which indicates May (the fifth month) 2004. This format will never represent the 5th day of an unspecified month in 2004, nor will it represent a time-span extending from 2004 into 2005.
  • If necessary for a particular application, the standard supports the addition of a decimal fraction to the smallest time value in the representation.

Dates

[edit]
October 2024
Week Mon Tue Wed Thu Fri Sat Sun
W40 30 01 02 03 04 05 06
W41 07 08 09 10 11 12 13
W42 14 15 16 17 18 19 20
W43 21 22 23 24 25 26 27
W44 28 29 30 31 01 02 03

The standard uses the Gregorian calendar, which "serves as an international standard for civil use."[19]

ISO 8601:2004 fixes a reference calendar date to the Gregorian calendar of 20 May 1875 as the date the Convention du Mètre (Metre Convention) was signed in Paris (the explicit reference date was removed in ISO 8601-1:2019). However, ISO calendar dates before the convention are still compatible with the Gregorian calendar all the way back to the official introduction of the Gregorian calendar on 15 October 1582.

Earlier dates, in the proleptic Gregorian calendar, may be used by mutual agreement of the partners exchanging information. The standard states that every date must be consecutive, so usage of the Julian calendar would be contrary to the standard (because at the switchover date, the dates would not be consecutive).

Years

[edit]
YYYY
±YYYYY

ISO 8601 prescribes, as a minimum, a four-digit year [YYYY] to avoid the year 2000 problem. It therefore represents years from 0000 to 9999, year 0000 being equal to 1 BC and all others AD, similar to astronomical year numbering. However, years before 1583 (the first full year following the introduction of the Gregorian calendar) are not automatically allowed by the standard. Instead, the standard states that "values in the range [0000] through [1582] shall only be used by mutual agreement of the partners in information interchange".[20]

To represent years before 0000 or after 9999, the standard also permits the expansion of the year representation but only by prior agreement between the sender and the receiver.[21] An expanded year representation [±YYYYY] must have an agreed-upon number of extra year digits beyond the four-digit minimum, and it must be prefixed with a + or − sign[22] instead of the more common AD/BC (or CE/BCE) notation; by convention 1 BC is labelled +0000, 2 BC is labeled −0001, and so on.[23]

Calendar dates

[edit]
YYYY-MM-DD or YYYYMMDD
YYYY-MM (but not YYYYMM)
Only allowed in the (now superseded) 2000 version:[24]
YY-MM-DD or YYMMDD
-YY-MM or -YYMM
--MM-DD or --MMDD
--MM
---DD

Calendar date representations are in the form shown in the adjacent box. [YYYY] indicates a four-digit year, 0000 through 9999. [MM] indicates a two-digit month of the year, 01 through 12. [DD] indicates a two-digit day of that month, 01 through 31. For example, "5 April 1981" may be represented as either "1981-04-05"[15] in the extended format or "19810405" in the basic format.

The standard also allows for calendar dates to be written with reduced precision. For example, one may write "1981-04" to mean "1981 April". One may simply write "1981" to refer to that year, "198" to refer to the decade from 1980 to 1989 inclusive, or "19" to refer to the century from 1900 to 1999 inclusive. Although the standard allows both the "YYYY-MM-DD" and YYYYMMDD formats for complete calendar date representations, if the day [DD] is omitted then only the YYYY-MM format is allowed. By disallowing dates of the form YYYYMM, the standard avoids confusion with the truncated representation[1][3] YYMMDD (still often used). The 2000 version also allowed writing the truncation "--04-05" to mean "April 5"[25] but the 2004 version does not allow omitting the year when a month is present.

Examples:

  • 7 January 2000 can be written as "2000-01-07" or "20000107"

Week dates

[edit]
YYYY-Www or YYYYWww
YYYY-Www-D or YYYYWwwD

Week date representations are in the formats as shown in the adjacent box. [YYYY] indicates the ISO week-numbering year which is slightly different from the traditional Gregorian calendar year (see below). [Www] is the week number prefixed by the letter W, from W01 through W53. [D] is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday.

There are several mutually equivalent and compatible descriptions of week 01:

  • the week with the first business day in the starting year (considering that Saturdays, Sundays and 1 January are non-working days),
  • the week with the starting year's first Thursday in it (the formal ISO definition),
  • the week with 4 January in it,
  • the first week with the majority (four or more) of its days in the starting year, and
  • the week starting with the Monday in the period 29 December to 4 January.

As a consequence, if 1 January is on a Monday, Tuesday, Wednesday or Thursday, it is in week 01. If 1 January is on a Friday, Saturday or Sunday, it is in week 52 or 53 of the previous year (there is no week 00). 28 December is always in the last week of its year.

The week number can be described by counting the Thursdays: week 12 contains the 12th Thursday of the year.

The ISO week-numbering year starts at the first day (Monday) of week 01 and ends at the Sunday before the new ISO year (hence without overlap or gap). It consists of 52 or 53 full weeks. The first ISO week of a year may have up to three days that are actually in the Gregorian calendar year that is ending; if three, they are Monday, Tuesday and Wednesday. Similarly, the last ISO week of a year may have up to three days that are actually in the Gregorian calendar year that is starting; if three, they are Friday, Saturday, and Sunday. The Thursday of each ISO week is always in the Gregorian calendar year denoted by the ISO week-numbering year.

Examples:

  • Monday 29 December 2008 is written "2009-W01-1"
  • Sunday 3 January 2010 is written "2009-W53-7"

Ordinal dates

[edit]
YYYY-DDD or YYYYDDD

An ordinal date is an ordinal format for the multiples of a day elapsed since the start of year. It is represented as "YYYY-DDD" (or YYYYDDD), where [YYYY] indicates a year and [DDD] is the "day of year", from 001 through 365 (366 in leap years). For example, "1981-04-05" is the same as "1981-095".

This simple form is preferable for occasions when the arbitrary nature of week and month definitions are more of an impediment than an aid, for instance, when comparing dates from different calendars. This format is used with simple hardware systems that have a need for a date system, but where including full calendar calculation software may be a significant nuisance. This system is sometimes referred to as "Julian Date", but this can cause confusion with the astronomical Julian day, a sequential count of the number of days since day 0 beginning 1 January 4713 BC Greenwich noon, Julian proleptic calendar (or noon on ISO date −4713-11-24 which uses the Gregorian proleptic calendar with a year 0000).

Times

[edit]
Thh:mm:ss.sss or Thhmmss.sss
Thh:mm:ss or Thhmmss
Thh:mm.mmm or Thhmm.mmm
Thh:mm or Thhmm
Thh.hhh
Thh
In unambiguous contexts
hh:mm:ss.sss or hhmmss.sss
hh:mm:ss or hhmmss
hh:mm or hhmm
hh

ISO 8601 uses the 24-hour clock system. As of ISO 8601-1:2019, the basic format is T[hh][mm][ss] and the extended format is T[hh]:[mm]:[ss]. Earlier versions omitted the T (representing time) in both formats.

  • [hh] refers to a zero-padded hour between 00 and 24.
  • [mm] refers to a zero-padded minute between 00 and 59.
  • [ss] refers to a zero-padded second between 00 and 60 (where 60 is only used to denote an added leap second).

So a time might appear as either "T134730" in the basic format or "T13:47:30" in the extended format. ISO 8601-1:2019 allows the T to be omitted in the extended format, as in "13:47:30", but only allows the T to be omitted in the basic format when there is no risk of confusion with date expressions.

Either the seconds, or the minutes and seconds, may be omitted from the basic or extended time formats for greater brevity but decreased precision; the resulting reduced precision time formats are:[26]

  • T[hh][mm] in basic format or T[hh]:[mm] in extended format, when seconds are omitted.
  • T[hh], when both seconds and minutes are omitted.

As of ISO 8601-1:2019/Amd 1:2022, "00:00:00" may be used to refer to midnight corresponding to the instant at the beginning of a calendar day; and "24:00:00" to refer to midnight corresponding to the instant at the end of a calendar day.[1] ISO 8601-1:2019 as originally published removed "24:00:00" as a representation for the end of day although it had been permitted in earlier versions of the standard.

A decimal fraction may be added to the lowest order time element present in any of these representations. A decimal mark, either a comma or a dot on the baseline, is used as a separator between the time element and its fraction. (Following ISO 80000-1 according to ISO 8601:1-2019,[27] it does not stipulate a preference except within International Standards, but with a preference for a comma according to ISO 8601:2004.[28]) For example, to denote "14 hours, 30 and one half minutes", do not include a seconds figure; represent it as "14:30,5", "T1430,5", "14:30.5", or "T1430.5".

There is no limit on the number of decimal places for the decimal fraction. However, the number of decimal places needs to be agreed to by the communicating parties. For example, in Microsoft SQL Server, the precision of a decimal fraction is 3 for a DATETIME, i.e., "yyyy-mm-ddThh:mm:ss[.mmm]".[29]

Time zone designators

[edit]
<time>Z
<time>±hh:mm
<time>±hhmm
<time>±hh

Time zones in ISO 8601 are represented as local time (with the location unspecified), as UTC, or as an offset from UTC.

Local time (unqualified)

[edit]

If no UTC relation information is given with a time representation, the time is assumed to be in local time. While it may be safe to assume local time when communicating in the same time zone, it is ambiguous when used in communicating across different time zones. Even within a single geographic time zone, some local times will be ambiguous if the region observes daylight saving time. It is usually preferable to indicate a time zone (zone designator) using the standard's notation.

Coordinated Universal Time (UTC)

[edit]

If the time is in UTC, add a Z directly after the time without a space. Z is the zone designator for the zero UTC offset. "09:30 UTC" is therefore represented as "09:30Z" or "T0930Z". "14:45:15 UTC" would be "14:45:15Z" or "T144515Z".

The Z suffix in the ISO 8601 time representation is sometimes referred to as "Zulu time" or "Zulu meridian" because the same letter is used to designate the Zulu time zone.[30] However the ACP 121 standard that defines the list of military time zones makes no mention of UTC and derives the "Zulu time" from the Greenwich Mean Time[31] which was formerly used as the international civil time standard. GMT is no longer precisely defined by the scientific community and can refer to either UTC or UT1 depending on context.[32]

Time offsets from UTC

[edit]

The UTC offset is appended directly to the time instead of "Z" suffix above; other nautical time zone letters are not used. The offset is applied to UTC to get the civil time in the designated time zone in the format '±[hh]:[mm]', '±[hh][mm]', or '±[hh]'.

A negative UTC offset describes a time zone west of the prime meridian where the civil time is behind UTC. So the zone designation for New York (on standard time) would be "−05:00","−0500", or "−05". Conversely, a positive UTC offset describes a time zone east of the prime meridian where the civil time is ahead of UTC. So the zone designation for Cairo will be "+02:00","+0200", or "+02".

A time zone where the civil time coincides with UTC is always designated as positive, though the offset is zero (see related specifications below). So the zone designation for London (on standard time) would be "+00:00", "+0000", or "+00".

Additional examples
[edit]

See List of UTC offsets for other UTC offsets.

Other time offset specifications
[edit]

It is not permitted to state a zero value time offset with a negative sign, as "−00:00", "−0000", or "−00". The section dictating sign usage states that a plus sign must be used for a positive or zero value, and a minus sign for a negative value. A plus-minus-sign (±) may also be used if it is available.[33]

Contrary to this rule, RFC 3339, which is otherwise a profile of ISO 8601, permits the use of "−00" with the same denotation as "+00" but a differing connotation: an unknown UTC offset.[34][35]

To represent a negative offset, ISO 8601 specifies using a minus sign (). If the interchange character set is limited and does not have a minus sign character, then the hyphen-minus should be used, (-).[36] ASCII does not have a minus sign, so its hyphen-minus character (code 4510) would be used. If the character set has a minus sign, such as U+2212 MINUS SIGN in Unicode, then that character should be used. The HTML character entity invocation for is &minus;.

ISO 8601-2:2019 allows for general durations for time offsets. For example, more precision can be added to the time offset with the format '<time>±[hh]:[mm]:[ss].[sss]' or '<time>±[n]H[n]M[n]S' as below.

Combined date and time representations

[edit]
<date>T<time>

A single point in time can be represented by concatenating a complete date expression, the letter "T" as a delimiter, and a valid time expression. For example, "2007-04-05T14:30". In ISO 8601:2004 it was permitted to omit the "T" character by mutual agreement as in "200704051430",[37] but this provision was removed in ISO 8601-1:2019. Separating date and time parts with other characters such as space is not allowed in ISO 8601, but allowed in its profile RFC 3339.[38]

If a time zone designator is required, it follows the combined date and time. For example, "2007-04-05T14:30Z" or "2007-04-05T12:30−02:00".

Either basic or extended formats may be used, but both date and time must use the same format. The date expression may be calendar, week, or ordinal, and must use a complete representation. The time may be represented using a specified reduced precision format.

Durations

[edit]
PnYnMnDTnHnMnS
PnW
P<date>T<time>

Durations define the amount of intervening time in a time interval and are represented by the format P[n]Y[n]M[n]DT[n]H[n]M[n]S or P[n]W as shown on the aside. In these representations, the [n] is replaced by the value for each of the date and time elements that follow the [n]. Leading zeros are not required, but the maximum number of digits for each element should be agreed to by the communicating parties. The capital letters P, Y, M, W, D, T, H, M, and S are designators for each of the date and time elements and are not replaced.

  • P is the duration designator (for period) placed at the start of the duration representation.
    • Y is the year designator that follows the value for the number of calendar years.
    • M is the month designator that follows the value for the number of calendar months.
    • W is the week designator that follows the value for the number of weeks.
    • D is the day designator that follows the value for the number of calendar days.
  • T is the time designator that precedes the time components of the representation.
    • H is the hour designator that follows the value for the number of hours.
    • M is the minute designator that follows the value for the number of minutes.
    • S is the second designator that follows the value for the number of seconds.

For example, "P3Y6M4DT12H30M5S" represents a duration of "three years, six months, four days, twelve hours, thirty minutes, and five seconds".

Date and time elements including their designator may be omitted if their value is zero, and lower-order elements may also be omitted for reduced precision. For example, "P23DT23H" and "P4Y" are both acceptable duration representations. However, at least one element must be present, thus "P" is not a valid representation for a duration of 0 seconds. "PT0S" or "P0D", however, are both valid and represent the same duration.

To resolve ambiguity, "P1M" is a one-month duration and "PT1M" is a one-minute duration (note the time designator, T, that precedes the time value). The smallest value used may also have a decimal fraction,[39] as in "P0.5Y" to indicate half a year. This decimal fraction may be specified with either a comma or a full stop, as in "P0,5Y" or "P0.5Y". The standard does not prohibit date and time values in a duration representation from exceeding their "carry over points" except as noted below. Thus, "PT36H" could be used as well as "P1DT12H" for representing the same duration. But keep in mind that "PT36H" is not the same as "P1DT12H" when switching from or to Daylight saving time.

Alternatively, a format for duration based on combined date and time representations may be used by agreement between the communicating parties either in the basic format PYYYYMMDDThhmmss or in the extended format P[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss]. For example, the first duration shown above would be "P0003-06-04T12:30:05". However, individual date and time values cannot exceed their moduli (e.g. a value of 13 for the month or 25 for the hour would not be permissible).[40]

The standard describes a duration as part of time intervals, which are discussed in the next section. The duration format on its own is ambiguous regarding the total number of days in a calendar year and calendar month. The number of seconds in a calendar day is also ambiguous because of leap seconds. For example "P1M" on its own could be 28, 29, 30, or 31 days. There is no ambiguity when used in a time interval. Using example "P2M" duration of two calendar months:

  • interval 2003-02-15T00:00:00Z/P2M ends two calendar months later at 2003-04-15T00:00:00Z which is 59 days later
  • interval 2003-07-15T00:00:00Z/P2M ends two calendar months later at 2003-09-15T00:00:00Z which is 62 days later

The duration format (or a subset thereof) is widely used independent of time intervals, as with the Java 8 Duration class which supports a subset of the duration format.[41][42]

Time intervals

[edit]
<start>/<end>
<start>/<duration>
<duration>/<end>
<duration>

A time interval is the intervening time between two time points. The amount of intervening time is expressed by a duration (as described in the previous section). The two time points (start and end) are expressed by either a combined date and time representation or just a date representation.

There are four ways to express a time interval:

  1. Start and end, such as "2007-03-01T13:00:00Z/2008-05-11T15:30:00Z"
  2. Start and duration, such as "2007-03-01T13:00:00Z/P1Y2M10DT2H30M"
  3. Duration and end, such as "P1Y2M10DT2H30M/2008-05-11T15:30:00Z"
  4. Duration only, such as "P1Y2M10DT2H30M", with additional context information

Of these, the first three require two values separated by an interval designator which is usually a solidus (more commonly referred to as a forward slash "/"). Section 3.2.6 of ISO 8601-1:2019 notes that "A solidus may be replaced by a double hyphen ["--"] by mutual agreement of the communicating partners", and previous versions used notations like "2000--2002".[43] Use of a double hyphen instead of a solidus allows inclusion in computer filenames;[44] in common operating systems, a solidus is a reserved character and is not allowed in a filename.

For <start>/<end> expressions, if any elements are missing from the end value, they are assumed to be the same as for the start value including the time zone. This feature of the standard allows for concise representations of time intervals. For example, the date of a two-hour meeting including the start and finish times could be shown as "2007-12-14T13:30/15:30", where "/15:30" implies "/2007-12-14T15:30" (the same date as the start), or the beginning and end dates of a monthly billing period as "2008-02-15/03-14", where "/03-14" implies "/2008-03-14" (the same year as the start).

If greater precision is desirable to represent the time interval, then more time elements can be added to the representation. An interval denoted "2007-11-13/15" can start at any time on 2007-11-13 and end at any time on 2007-11-15, whereas "2007-11-13T09:00/15T17:00" includes the start and end times. To explicitly include all of the start and end dates, the interval would be represented as "2007-11-13T00:00/16T00:00".

Repeating intervals

[edit]
Rn/<interval>
R/<interval>

Repeating intervals are specified in clause "4.5 Recurring time interval". They are formed by adding "R[n]/" to the beginning of an interval expression, where R is used as the letter itself and [n] is replaced by the number of repetitions. Leaving out the value for [n] or specifying a value of -1, means an unbounded number of repetitions. A value of 0 for [n] means the interval is not repeated.

If the interval specifies the start (forms 1 and 2 above), then this is the start of the repeating interval. If the interval specifies the end but not the start (form 3 above), then this is the end of the repeating interval. For example, to repeat the interval of "P1Y2M10DT2H30M" five times starting at "2008-03-01T13:00:00Z", use "R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M".

Truncated representations (deprecated)

[edit]

ISO 8601:2000 allowed truncation (by agreement), where leading components of a date or time are omitted. Notably, this allowed two-digit years to be used as well as the ambiguous formats YY-MM-DD and YYMMDD. This provision was removed in ISO 8601:2004.

Some Truncated Representations (last valid in ISO 8601:2000)
Type Basic format Basic example Extended format Extended example
A specific date in the implied century YYMMDD 851026 YY-MM-DD 85-10-26
A specific year and month in the implied century -YYMM -8510 -YY-MM -85-10
A specific year in the implied century -YY -85
A specific day of a month in the implied year --MMDD --1026 --MM-DD --10-26
A specific month in the implied year --MM --10
A specific day in the implied month ---DD ---26
A specific year and ordinal day in the implied century YYDDD 85299 YY-DDD 85-299
A specific ordinal day in the implied year -DDD -299
A specific year and week in the implied decade -YWww -5W43 -Y-Www -5-W43
A specific week and day in the implied year -WwwD -W436 -Www-D -W43-6
A specific day in the implied week -W-D -W-6
A specific minute and second of the implied hour -mmss -3456 -mm:ss -34:56
A specific second of the implied minute -ss -56
A specific minute and decimal fraction of the implied hour -mm,m -34,9

The first and seventh examples given above omit the leading - for century. Other formats have one leading - per omitted century, year, month, week, hour and minute as necessary to disambiguate the format.

Standardised extensions

[edit]

ISO 8601-2:2019 defines a set of standardised extensions to the ISO 8601 date and time formats.

Extended Date/Time Format (EDTF)
The EDTF is given as an example of a profile of ISO 8601. Some of its features are:[9]
  • Uncertain and approximate qualifiers, '?' and '~', as well as their combined used, '%'; they can be applied to the whole date or to individual components.
  • Time intervals with an open (unbounded) end or an unknown end.
  • Exponential and significant figure notation in years.
  • Special "month" values indicating sub-year groupings such as seasons and quarters.
  • Syntax for serializing a list of dates.
The EDTF features are described in the "Date and Time Extensions" section of ISO 8601-2:2019.
Repeat rules for recurring time intervals
ISO 8601-2:2019 also defines a format to constrain repeating intervals based on syntax from iCalendar.

Usage

[edit]

On the Internet, the World Wide Web Consortium (W3C) uses the IETF standard based on ISO 8601 in defining a profile of the standard that restricts the supported date and time formats to reduce the chance of error and the complexity of software. The very simple specification is based on a draft of the RFC 3339 mentioned below.[45]

ISO 8601 is referenced by several specifications, but the full range of options of ISO 8601 is not always used. For example, the various electronic program guide standards for TV, digital radio, etc. use several forms to describe points in time and durations. The ID3 audio meta-data specification also makes use of a subset of ISO 8601.[46] The X.690 encoding standard's GeneralizedTime makes use of another subset of ISO 8601.

Commerce

[edit]

As of 2006, the ISO week date appears in its basic form on major brand commercial packaging in the United States.[citation needed] Its appearance depended on the particular packaging, canning, or bottling plant more than any particular brand. The format is particularly useful for quality assurance, so that production errors can be readily traced.

RFCs

[edit]

IETF RFC 3339[47] defines a profile of ISO 8601 for use in Internet protocols and standards. It explicitly excludes durations and dates before the common era. The more complex formats such as week numbers and ordinal days are not permitted.[48]

RFC 3339 deviates from ISO 8601 in allowing a zero time zone offset to be specified as "-00:00", which ISO 8601 forbids. RFC 3339 intends "-00:00" to carry the connotation that it is not stating a preferred time zone, whereas the conforming "+00:00" or any non-zero offset connotes that the offset being used is preferred. This convention regarding "-00:00" is derived from earlier RFCs, such as RFC 2822 which uses it for timestamps in email headers.[49] RFC 2822 made no claim that any part of its timestamp format conforms to ISO 8601, and so was free to use this convention without conflict.

Building upon the foundations of RFC 3339, the IETF introduced the Internet Extended Date/Time Format (IXDTF) in RFC 9557.[50] This format extends the timestamp representation to include additional information such as an associated time zone name. The inclusion of time zone names is particularly useful for applications that need to account for events like daylight saving time transitions. Furthermore, IXDTF maintains compatibility with pre-existing syntax for attaching time zone names to timestamps, providing a standardized and flexible approach to timestamp representation on the internet. Example:

1996-12-19T16:39:57-08:00[America/Los_Angeles]

Adoption as national standards

[edit]
Australia AS/NZS ISO 8601.1:2021, AS/NZS ISO 8601.2:2021 (replaced AS ISO 8601-2007)
Austria ÖNORM ISO 8601 (replaced ÖNORM EN 28601)
Belgium NBN EN 28601 (1993)
Brazil NBR 5892:2019
Canada CAN/CSA-Z234.4-89 (R2007)[51]
Colombia NTC 1034:2014 Source ICONTEC (This standard is identical to ISO 8601:2004) Archived 2020-01-16 at the Wayback Machine
China GB/T 7408-2005
Czech Republic ČSN ISO 8601 (replaced ČSN EN 28601) (Obsolete as of 2019. No standard was given in exchange.[52])
Denmark DS/ISO 8601:2005 (replaced DS/EN 28601)
Estonia EVS 8:2008; EVS-ISO 8601:2011
European Norm EN ISO 8601, EN 28601:1992 (cancelled 7 October 2011)
Finland SFS-EN 28601
France NF Z69-200; NF EN 28601:1993-06-01 (cancelled)
Germany DIN ISO 8601:2006-09 (replaced DIN EN 28601:1993-02); related: DIN 5008:2011-04 (replaced DIN 5008:2005-05, DIN 5008:2001-11, DIN 5008:1996-05)
Greece ELOT EN 28601
Hungary MSZ ISO 8601:2003
Iceland IST EN 28601:1992 (obsolete)
India IS 7900:2001
Ireland IS/EN 28601:1993
Italy UNI EN 28601 (1993)
Japan JIS X 0301:2002
Korea, Republic of KS X ISO 8601
Lithuania LST ISO 8601:2006 (replaced LST ISO 8601:1997)
Luxembourg ITM-EN 28601
Mexico NMX-CH-150-IMNC-1999[53]
Netherlands NEN ISO 8601, NEN EN 28601 (1994), NEN 2772
New Zealand AS/NZS ISO 8601.1:2021, AS/NZS ISO 8601.2:2021
Norway NS-ISO 8601
Poland PN-EN 28601:2002 (Obsolete as of 2008. No standard was given in exchange.[54])
Portugal NP EN 28601
Russia ГОСТ ИСО 8601-2001 (current), ГОСТ 7.64-90 (obsolete)
South Africa SANS 8601:2009[55]
Spain UNE EN 28601:1995
Sweden SS-ISO 8601-1:2022,[56] contains the official English version of ISO 8601-1:2019. (Approved 2022-05-13, replaces SS-ISO 8601:2011, edition 2)
Switzerland SN ISO 8601:2005-08 (replaced SN-EN 28601:1994)
Taiwan CNS 7648
Thailand TIS 1111:2535 (1992)
Turkey TS ISO 8601-1 and TS ISO 8601-2 (Accepted from 2021-02-15)
Ukraine ДСТУ ISO 8601:2010
United Kingdom BS ISO 8601:2004, BS EN 28601 (1989-06-30)
United States ANSI INCITS 30-1997 (R2008) and NIST FIPS PUB 4-2
Vietnam TCVN 6398-1:1998

See also

[edit]

Notes and references

[edit]
  1. ^ a b c ISO 8601-1:2019/Amd 1:2022, ISO, 2022-10-25
  2. ^ a b ISO 8601:2004[E] section 1 Scope
  3. ^ a b ISO 8601:2004(E), ISO, 2004-12-01, Annex A: ... From that concept representations of all other date and time values were logically derived; thus, ISO 2014, ISO 3307 and ISO 4031 have been superseded. ... Identification of a particular date by means of ordinal dates (ISO 2711) and by means of the week numbering system (ISO 2015) were alternative methods that the basic concept of this International Standard could also encompass; thus, ISO 2015 and ISO 2711 have now been superseded.
  4. ^ ISO 8601:2004(E). ISO. 2004-12-01. p. iv Foreword.
  5. ^ "TC 154 Processes, data elements and documents in commerce, industry and administration". Technical committees. ISO. Archived from the original on 2016-05-25. Retrieved 2014-08-16.
  6. ^ "Introduction to the new ISO 8601-1 and ISO 8601-2". ISO/TC 154. 26 August 2019.
  7. ^ "ISO/DIS 8601-1:2016-10-26" (PDF). Library of Congress. Archived from the original (PDF) on 2017-10-19.
  8. ^ "German draft E DIN ISO 8601-1:2017-02 Datenelemente und Austauschformate - Informationsaustausch - Darstellung von Datum und Uhrzeit - Teil 1: Grundlegende Regeln (ISO/DIS 8601-1:2016)". DIN-Normenausschuss Informationstechnik und Anwendungen (NIA). Archived from the original on 2017-10-20. Retrieved 2017-10-19.
  9. ^ a b "Extended Date/Time Format (EDTF) Specification". The Library of Congress. 2019-10-08 [2019-02-04, 2014, 2012]. Archived from the original on 2020-03-07. Retrieved 2020-03-07.
  10. ^ "Extended Date/Time Format (EDTF) Background". The Library of Congress. 2019-10-08 [2019-03-01]. Archived from the original on 2020-03-07. Retrieved 2020-03-07.
  11. ^ "Extended Date/Time Format (EDTF) 1.0 2012/2014". Draft Submission. The Library of Congress. Archived from the original on 2017-07-15. Retrieved 2017-07-15.
  12. ^ "ISO/WD 8601-2:2016-02-16" (PDF). Library of Congress. Archived from the original (PDF) on 2017-10-19.
  13. ^ "ISO/DIS 8601-2:2016-10-26" (PDF). Library of Congress. Archived from the original (PDF) on 2017-10-20.
  14. ^ "German draft E DIN ISO 8601-2:2017-02 Datenelemente und Austauschformate - Informationsaustausch - Darstellung von Datum und Uhrzeit - Teil 2: Erweiterungen (ISO/DIS 8601-2:2016)". DIN-Normenausschuss Informationstechnik und Anwendungen (NIA). Archived from the original on 2017-10-19. Retrieved 2017-10-19.
  15. ^ a b ISO: "ISO 8601 — Date and time format". Archived 2013-03-08 at the Wayback Machine.
  16. ^ Wolf, Misha; Wicksteed, Charles (15 September 1997). "Date and Time Formats". W3C. Archived from the original on 10 May 2021. Retrieved 11 May 2021.
  17. ^ ISO 8601:2004 section 2.3.3 basic format
  18. ^ Earlier versions of ISO 8601 used the word accuracy, not precision, in the relevant section, e.g: 2.3.7 representation with reduced accuracy. This was corrected in ISO 8601-1:2019.
  19. ^ Doggett, L. E. (1992). "Calendars". In P. K. Seidelmann (ed.). Explanatory Supplement to the Astronomical Almanac. Sausalito, California: University Science Books. p. 580. ISBN 0-935702-68-7. Archived from the original on 2004-04-01. The Gregorian calendar today serves as an international standard for civil use.
  20. ^ ISO 8601:2004(E). ISO. 2004-12-01. section 4.1.2.1 General.
  21. ^ ISO 8601:2004(E). ISO. 2004-12-01. 3.5 Expansion ... By mutual agreement of the partners in information interchange, it is permitted to expand the component identifying the calendar year, which is otherwise limited to four digits. This enables reference to dates and times in calendar years outside the range supported by complete representations, i.e. before the start of the year [0000] or after the end of the year [9999].
  22. ^ ISO 8601:2004 sections 3.4.2, 4.1.2.4
  23. ^ For example, see Annex B.1.1 of the standard.
  24. ^ last in ISO 8601:2000, in use by Perreault, S. (August 2011). "RFC 6350 - vCard Format Specification". IETF. doi:10.17487/RFC6350. Archived from the original on 2016-05-31. Retrieved 2021-01-21. Truncated representation, as specified in [ISO.8601.2000], Sections 5.2.1.3 d), e), and f), is permitted., although removed in ISO 8601:2004
  25. ^ Perreault, Simon (August 2011). "RFC 6350 - vCard Format Specification". IETF. §4.3.1. DATE. doi:10.17487/RFC6350. Archived from the original on 2016-05-31. Retrieved 2016-06-29. Truncated representation, as specified in [ISO.8601.2000], Sections 5.2.1.3 d), e), and f), is permitted.
  26. ^ ISO 8601-1:2019 section 5.3.1.3 Representations with reduced precision
  27. ^ ISO 8601-1:2019 section 3.1.3.9 Decimal sign
  28. ^ ISO 8601:2004(E), ISO, 2004-12-01, 4.2.2.4 ... the decimal fraction shall be divided from the integer part by the decimal sign specified in ISO 31-0, i.e. the comma [,] or full stop [.]. Of these, the comma is the preferred sign.
  29. ^ "ISO 8601 Format". TechNet. Microsoft Docs. 3 December 2008. Archived from the original on 2021-10-20. Retrieved 2021-10-20.
  30. ^ Markus Kuhn (2020-06-16). "A summary of the international standard date and time notation". Archived from the original on 2022-10-05. Retrieved 2022-10-05.
  31. ^ "Communication Instructions General ACP 121(I)" (PDF). Combined Communications Electronics Board. October 2010. Archived (PDF) from the original on 2018-01-16. Retrieved 2018-01-15.
  32. ^ McCarthy, Dennis D.; Seidelmann, Kenneth P. (2009). Time: From Earth Rotation to Atomic Physics. Weinheim: Wiley-VCH Verlag GmbH & Co. KGaA. p. 10. ISBN 978-3-527-40780-4.
  33. ^ ISO 8601-1:2019 section 3.2.4, ISO 8601:2004 section 3.4.2
  34. ^ RFC 3339 – Unknown local offset convention
  35. ^ Newman, Chris (July 2002). Klyne, Graham (ed.). Date and Time on the Internet: Timestamps. Reston, VA: IETF Secretariat, Corp. for National Research Initiatives. p. 4. doi:10.17487/RFC3339. OCLC 43315042. Archived from the original on 20 January 2021. Retrieved 1 February 2021 – via IETF Tools Pages. Unknown Local Offset Convention: If the time in UTC is known, but the offset to local time is unknown, this can be represented with an offset of "-00:00". This differs semantically from an offset of "Z" or "+00:00", which imply that UTC is the preferred reference point for the specified time. RFC2822 [IMAIL-UPDATE] describes a similar convention for email
  36. ^ "3.4.1 Characters used in the representations - Introduction". Data elements and interchange formats — Information interchange - Representation of dates and times — Part 1: Basic rules (PDF) (pdf). ISO. 2016-02-16. p. 12. ISO/WD 8601-1. Archived (PDF) from the original on 2022-10-05. In an environment where use is made of a character repertoire based on ISO/IEC 646, "hyphen" and "minus" are both mapped onto "hyphen-minus". Representations with a "plus-minus" shall only be used in such environment if the interchange repertoire includes "plus-minus"
  37. ^ ISO 8601:2004(E): Data elements and interchange formats — Information interchange — Representation of dates and times. ISO. 2004-12-01. 4.3.2 NOTE: By mutual agreement of the partners in information interchange, the character [T] may be omitted in applications where there is no risk of confusing a date and time of day representation with others defined in this International Standard.
  38. ^ G. Klyne; C. Newman (July 2002). "Date and Time on the Internet: Timestamps". Ietf Datatracker. §5.6. Internet Date/Time Format. doi:10.17487/RFC3339. RFC 3339. 5.6. NOTE: ISO 8601 defines date and time separated by "T". Applications using this syntax may choose, for the sake of readability, to specify a full-date and full-time separated by (say) a space character.
  39. ^ "Data elements and interchange formats — Information interchange - Representation of dates and times — Part 1: Basic rules" (PDF). The Library of Congress. p. 23. Archived (PDF) from the original on 2021-03-12. Retrieved 2021-07-06. b) If necessary for a particular application, the lowest order components may have a decimal fraction.
  40. ^ ISO 8601:2004 section 4.4.3.3 Alternative format, ISO 8601-1:2019 section 5.5.2.4 Alternative format
  41. ^ "Java 8 Class Duration". Java Platform Standard Edition 8. Oracle. Archived from the original on 2017-10-14. Retrieved 2017-10-07.
  42. ^ "Amazon Alexa Duration". Amazon Developer. Amazon.com. Archived from the original on 2017-10-14. Retrieved 2017-10-07.
  43. ^ "Info on ISO 8601, the date and time representation standard". Cs.tut.fi. Archived from the original on 2017-10-14. Retrieved 2012-08-29.
  44. ^ "ISO 8601 - Getting with the Times (and Dates)". Hydrogold. 2012-01-01. Archived from the original on 2014-01-25. Retrieved 2013-08-13.
  45. ^ Note about Date and Time Formats to W3C from Reuters Archived 2011-08-24 at the Wayback Machine
  46. ^ Nilsson, M. (2000-11-01). "ID3 tag version 2.4.0 - Main Structure". id3.org. pp. §4. Archived from the original on 2015-03-09. Retrieved 2009-09-27.
  47. ^ Newman, Chris; Klyne, Graham (July 2002). Date and Time on the Internet: Timestamps. IETF. doi:10.17487/RFC3339. RFC 3339. Retrieved 2015-10-25.
  48. ^ Newman, Chris; Klyne, Graham (July 2002). "Internet Date/Time Format". Date and Time on the Internet: Timestamps. IETF. p. 8. sec. 5.6. doi:10.17487/RFC3339. RFC 3339. Retrieved 2015-10-25.
  49. ^ "Date and Time Specification". Internet Message Format. IETF. April 2001. p. 14. sec. 3.3. doi:10.17487/RFC2822. RFC 2822.
  50. ^ Sharma, Ujjwal; Bormann, Carsten (2024). Date and Time on the Internet: Timestamps with Additional Information. IETF. doi:10.17487/RFC9557. RFC 9557. Retrieved 2024-05-28.
  51. ^ National Standard of Canada, "CAN/CSA-Z234.4-89 (R2007): All-Numeric Dates and Times". Standards Council of Canada. 31 December 1989. Archived from the original on 30 March 2018. Retrieved 29 March 2018.
  52. ^ "ČSN ISO 8601 (979738) Datové prvky a formáty výměny - Výměna informací - Zobrazení data a času". 2023-04-17. Retrieved 2023-04-17.
  53. ^ "DOF - Diario Oficial de la Federación". Archived from the original on 2021-11-10. Retrieved 2021-11-10.
  54. ^ Czubla, Albin (2020-12-04). "Główny Urząd Miar" (PDF). Główny Urząd Miar. Retrieved 2020-12-04.
  55. ^ "SANS 8601:2009 (Ed. 2.00)". SABS Webstore. Archived from the original on 2021-11-24. Retrieved 2021-11-24.
  56. ^ "SS-ISO 8601-1:2022". SIS Webstore. Retrieved 2023-10-06.
[edit]

Implementation overview