The ISO 8601 Date Format
by Peter Meyer

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:

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 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)


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:

Click here for a 2002-01-04 message from Ian Galpin with further links to ISO 8601 web pages.

Easy Date Converter
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.

Calendar Studies Date/Calendar Software
Hermetic Systems Home Page