The ISO 8601 Date Format (original) (raw)
It is well known that currently dates (in the Gregorian calendar) are expressed in several different ways in various countries. For example what the British write as "8/3/96" the Americans write as "3/8/96" and the Swiss as "8.3.96" or "08.03.96". As daily life becomes more internationalized (and web users quickly note that information is available from all parts of the globe) one may find oneself reading documents in which different date formats are used even though the documents are in the same language. When one reads that something occurred on "3/8/96" one may be left wondering whether it occurred in March or in August. Life would be slightly easier if dates were expressed in a common format.
A numerically-expressed date (in all commonly-used calendar systems) is an expression consisting primarily of a sequence of three numbers specifying year, month and day. There are several components to the manner in which a date may be expressed, but the main ones are:
- The order in which year, month and day are expressed.
In this the great divide is between the Europeans, who write day.month.year, and the inhabitants of the U.S.A., who write month/day/year. - The manner in which the three numbers, when written, are set off from each other.
In this the Americans usually separate the numbers with "/" whereas the Europeans follow various national conventions, generally using "/", "." or "-". - Whether the numbers less than 10 are written with a leading zero.
Current practice varies. - Whether there are limits to the dates which can be expressed, and if so whether a way is provided to express dates outside this limit.
Currently, in most commonly used systems for expressing dates in the Gregorian calendar, regardless of date format, dates prior to 1/1/1 cannot be expressed without the auxiliary use of the letters "B.C." (or equivalently, "B.C.E."). This signifies that the year number has to be interpreted other than as usual (specifically the year n B.C. is the year which began n years before the beginning of year 1).
Almost everywhere in this web site dates are expressed in the format which has been proposed by the International Standards Organization (ISO 8601). With regard to the four components mentioned above, this date format is as follows:
- The order in which year, month and day are expressed.
Year, then month, then day. - The manner in which the three numbers, when written, are set off from each other.
The "-" sign is used to separate them. - Whether the numbers less than 10 are written with a leading zero.
Yes; for example the third day or month is expressed as "03". - Whether there are limits to the dates which can be expressed.
The year is expressed in the manner of the astronomers and chronologists. Year 0 is the year preceding year 1 (a.k.a. 1 B.C.). Year -1 is the year preceding year 0 (a.k.a. 2 B.C.). Generally, year -n is the year which began n+1 years before the beginning of year 1 (so year -n = year n+1 B.C.). With the use of this astronomical system of year-numbering there are no limits to the dates which can be expressed in this date format.
The ISO 8601 date format may be used both with the Gregorian and with the Julian systems (and with many other calendar systems). Dates in the Julian calendar are marked with "J", and those in the Gregorian calendar (when this is made explicit) are marked with "G".
As noted above, in the Gregorian Calendar dates prior to 1-01-01 use years denoted "B.C.", which is inconsistent with the ISO 8601 standard of designating years by means of the astronomical system (according to which the day before 1-01-01 is designated 0-12-31, and the day one year and one day before 1-01-01 is designated -1-12-31). Thus a date such as -1-12-31 is not a date in the Gregorian Calendar. We may use the term "Common Era Calendar" to denote that calendar whose structure is the same as the Gregorian, but which denotes years not according to the Gregorian A.D./B.C. system but according to the astronomical system. Such dates can be marked with "CE", so 31 December in the year 2 B.C. is -1-12-31 CE in the Common Era Calendar.
Duplication of Months and Days
Some lunar calendars add an extra month to some years. If this follows the last month of a normal year then the number of the month is simply one more than the number of months in a normal year. However some calendars (e.g., the Jewish) insert an extra month by duplicating a month. If using an unmodified ISO 8601 date format, and it is the six month which is duplicated, then the dates of the first days of the months would be of the form:
... year-06-01, year-06-01, year-07-01, ...
which is clearly unacceptable because dates with a month "6" would be ambiguous.
It has been suggested that this problem can be solved by changing the instance of the date separator before the month from "-" to "+", then the above dates would run:
... year-06-01, year+06-01, year-07-01, ...
The date notation for a calendar which duplicated some days within a month (bizarre as this might seem) could be amended in the same way, e.g.:
... year-02-22, year-02-23, year-02+23, year-02-24, ...
A calendar which duplicated years (none have been known to do so) could be dealt with in the same way, e.g.:
... 2000-01-01, 2001-01-01, +2001-01-01, 2002-01-01, ...
and for negative years:
... -999-01-01, -998-01-01, +-998-01-01, -997-01-01, ...
It is always possible to invent (or discover) calendars which don't easily allow expression of dates using the ISO 8601 date format, but the ISO 8601 date format (even when modified as above) is not intended to be a universal calendar date notation.
It is, however, accommodating. Consider, e.g., a calendar involving months which counted the days from 1 to 15 but then counted down to 1. If this were a somewhat accurate lunar calendar then the months would always or usually have 29 or 30 days, so the days of the month might be numbered either
1, 2, 3, ..., 13, 14, 15, 14, 13, 12, ..., 2, 1 (29 days)
or
1, 2, 3, ..., 14, 15, 15, 14, 13, ..., 2, 1 (30 days)
In this case, as above, the date separator preceding the day could be changed to "+", so that the dates in a 30-day month would be of the form:
y-m-01, ..., y-m-14, y-m-15, y-m+15, y-m+14, ..., y-m+01
See also:
- Ian Galpin: Year 2000 and ISO 8601
- Markus Kuhn: A Summary of the International Standard Date and Time Notation
- Steve Adams: Campaign to get the Internet World to use the International Date Format
- C. Newman: Date and Time on the Internet
- Date and Time Formats
- Robert van Gent: The Mathematics of the ISO 8601 Calendar
- John Stockton: Date and Time Formats
Click here for a 2002-01-04 message from Ian Galpin with further links to ISO 8601 web pages.
Windows software for adding a number of days to a date, calculating the number of days between two dates (with or without weekend days), and converting among Common Era (Gregorian) dates, Julian dates, ISO Week dates, Hermetic Leap Week dates, Julian day numbers and other formats.
Julian-Gregorian-Dee Date Calculator
Converts between Julian, Gregorian, Dee and Dee-Cecil calendar dates in various formats, adds/subtracts a number of days, weeks, months and years to/from a given date.