iso-8601: Difference between revisions
AndyMabbett (talk | contribs) m (→Issues: rm redundant issue) |
m (Replace <entry-title> with {{DISPLAYTITLE:}}) |
||
(20 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:ISO 8601}} | |||
The '''International Standards Organisation''''s standard, number '''8601''' is an international standard for date and time representations. It is used for all date-time representations in microformats. | The '''International Standards Organisation''''s standard, number '''8601''' is an international standard for date and time representations. It is used for all date-time representations in microformats, as well as a number of other formats ([[HTML5]] <code><time></code> element & <code>datetime</code> attribute, XML Schema Datatypes, RDF, Atom). | ||
<div style="float: right">https://sslimgs.xkcd.com/comics/iso_8601.png | |||
<small style="float: right">Image: [https://xkcd.com/1179/ XKCD]</small> | |||
</div> | |||
In addition, ISO 8601 dates in particular are the most globally unambiguously human readable/writeable date format and thus should always be used on the (world wide) web. | |||
==Overview== | ==Overview== | ||
The following are good prose overviews of ISO 8601: | |||
* [http://www.cl.cam.ac.uk/~mgk25/iso-time.html ISO 8601 summary by Markus Kuhn] | |||
* [http://en.wikipedia.org/wiki/ISO_8601 ISO 8601 on Wikipedia] | |||
==Microformats== | ==Microformats== | ||
microformats in general use a subset of ISO8601 - preferring uses which are more human readable (requiring hyphens in dates, and colons in times). | |||
All date-time properties in microformats use ISO8601 values. E.g. | |||
* all <code>dt-*</code> properties in [[microformats2]] | |||
* all classic microformats's date-time properties, including: | |||
**[[hAtom]] - <code>published</code>, <code>updated</code> | |||
**[[hCalendar]] - <code>dtstart</code>, <code>dtend</code> | |||
**[[hCard]] - <code>bday</code> | |||
**[[hReview]] - <code>dtreviewed</code> | |||
__TOC__ | |||
== HTML5 == | |||
[[HTML5]] uses both a subset of ISO 8601 for dates, times, durations for the <code><time></code> element, as well as an extended (and more human friendly) duration format. | |||
==<nowiki>RFC 3339</nowiki>== | ==<nowiki>RFC 3339</nowiki>== | ||
Line 24: | Line 35: | ||
*The more complex formats like week numbers and ordinal day are not permitted (see <nowiki>RFC 3339</nowiki>, section 5.6). | *The more complex formats like week numbers and ordinal day are not permitted (see <nowiki>RFC 3339</nowiki>, section 5.6). | ||
==ISO 8601 implementations in programming libraries== | |||
* JodaTime - the Java date-time library - [http://joda-time.sourceforge.net/cal_iso.html ISO8601 Java calendar system] | |||
* Perl: DateTime::Format::ISO8601 | |||
* Ruby 1.9 implements an iso8601 method in the Date STDLIB but it does not handle ordinal dates. | |||
* Glenn Jones' [https://github.com/glennjones/microformat-node microformat-node] parser includes isodate.js, a Node.js implementation of (some of) ISO 8601. | |||
* Python: [https://pypi.python.org/pypi/iso8601 iso8601] | |||
{{ToDo}} document more implementations. | |||
== FAQ == | |||
=== Why hyphens in dates === | |||
Q: Must I use the hyphens?[https://twitter.com/edburns/status/368063860835897344] | |||
A: You <em>should</em> always use hyphens in ISO 8601 dates because that makes them more readable, and thus more human friendly. | |||
Also, using hyphens helps clearly distinguish different uses for different granularities of dates, e.g.: | |||
* 2013-08-19 - just the day | |||
* 2013-08 - the whole month | |||
* 2013 - the entire year | |||
==Issues== | ==Issues== | ||
None currently. | |||
Resolved issues: [[iso-8601-issues-resolved]]. | |||
==See also== | ==See also== | ||
*[http://en.wikipedia.org/wiki/ISO_8601 ISO 8601 on Wikipedia] | *[http://en.wikipedia.org/wiki/ISO_8601 ISO 8601 on Wikipedia] | ||
** [http://en.wikipedia.org/wiki/ISO_8601_usage ISO 8601 usage on Wikipedia] | |||
* [http://isotc.iso.org/livelink/livelink/4021199/ISO_8601_2004_E.zip?func=doc.Fetch&nodeid=4021199 ISO 8601:2004(E) from ISO] (zip-pdf, 228KB) | * [http://isotc.iso.org/livelink/livelink/4021199/ISO_8601_2004_E.zip?func=doc.Fetch&nodeid=4021199 ISO 8601:2004(E) from ISO] (zip-pdf, 228KB) | ||
* [http://www.iso.org/iso/en/prods-services/popstds/datesandtime.html Summary of 8601 by ISO] | * [http://www.iso.org/iso/en/prods-services/popstds/datesandtime.html Summary of 8601 by ISO] | ||
Line 38: | Line 70: | ||
* [http://www.dmoz.org/Science/Reference/Standards/Individual_Standards/ISO_8601/ ISO 8601 at the Open Directory Project] | * [http://www.dmoz.org/Science/Reference/Standards/Individual_Standards/ISO_8601/ ISO 8601 at the Open Directory Project] | ||
* [http://www.w3.org/TR/NOTE-datetime W3C Specification about UTC Date and Time] and IETF Internet standard <nowiki>RFC 3339</nowiki>, based on ISO 8601 | * [http://www.w3.org/TR/NOTE-datetime W3C Specification about UTC Date and Time] and IETF Internet standard <nowiki>RFC 3339</nowiki>, based on ISO 8601 | ||
* StackOverflow: [http://stackoverflow.com/questions/tagged/iso-8601 iso-8601 tag] - questions about iso-8601 as related to JavaScript, PHP, MySQL and other programming languages and technologies. | |||
==Related pages== | ==Related pages== | ||
*[[datetime-design-pattern]] | *[[datetime-design-pattern]] | ||
*[[date-design-pattern]] | |||
*[[abbr-design-pattern]] |
Latest revision as of 16:28, 18 July 2020
The International Standards Organisation's standard, number 8601 is an international standard for date and time representations. It is used for all date-time representations in microformats, as well as a number of other formats (HTML5 <time>
element & datetime
attribute, XML Schema Datatypes, RDF, Atom).
Image: XKCD
In addition, ISO 8601 dates in particular are the most globally unambiguously human readable/writeable date format and thus should always be used on the (world wide) web.
Overview
The following are good prose overviews of ISO 8601:
Microformats
microformats in general use a subset of ISO8601 - preferring uses which are more human readable (requiring hyphens in dates, and colons in times).
All date-time properties in microformats use ISO8601 values. E.g.
- all
dt-*
properties in microformats2 - all classic microformats's date-time properties, including:
HTML5
HTML5 uses both a subset of ISO 8601 for dates, times, durations for the <time>
element, as well as an extended (and more human friendly) duration format.
RFC 3339
RFC 3339 defines a profile of ISO 8601 for the use in Internet protocols and standards.
- It explicitly excludes durations and dates before the common era.
- The more complex formats like week numbers and ordinal day are not permitted (see RFC 3339, section 5.6).
ISO 8601 implementations in programming libraries
- JodaTime - the Java date-time library - ISO8601 Java calendar system
- Perl: DateTime::Format::ISO8601
- Ruby 1.9 implements an iso8601 method in the Date STDLIB but it does not handle ordinal dates.
- Glenn Jones' microformat-node parser includes isodate.js, a Node.js implementation of (some of) ISO 8601.
- Python: iso8601
to do! document more implementations.
FAQ
Why hyphens in dates
Q: Must I use the hyphens?[1]
A: You should always use hyphens in ISO 8601 dates because that makes them more readable, and thus more human friendly.
Also, using hyphens helps clearly distinguish different uses for different granularities of dates, e.g.:
- 2013-08-19 - just the day
- 2013-08 - the whole month
- 2013 - the entire year
Issues
None currently.
Resolved issues: iso-8601-issues-resolved.
See also
- ISO 8601 on Wikipedia
- ISO 8601:2004(E) from ISO (zip-pdf, 228KB)
- Summary of 8601 by ISO
- Technical Committee ISO/TC 154, Processes, data elements and documents in commerce, industry and administration.
- The Mathematics of the ISO 8601 Calendar
- Current date in week date and ordinal date format
- ISO 8601 at the Open Directory Project
- W3C Specification about UTC Date and Time and IETF Internet standard RFC 3339, based on ISO 8601
- StackOverflow: iso-8601 tag - questions about iso-8601 as related to JavaScript, PHP, MySQL and other programming languages and technologies.