Please write dates and times so that everyone understands them, not just you. xkcd: ISO 8601
Posted by jpluimers on 2013/02/28
Boy, am I glad with the xkcd: ISO 8601 post and image on the right.
One reason:
Please write dates and times so that everyone understands them, not just you.
The alt-text of the comic is hilarious (ISO 8601 was published on 06 05 88 and most recently amended on 12 01 04) showing the confusion of using 2 digit years not knowing which field means which (I thin XKCD author Randall Munroe and Mathematics of the ISO calendar got some of the dates, see PDF search dates below).
I found out in the mid 1980s that people I was communicating with internationally (back then the internet was forming and you already had BITNET Relay chat and email) were using different date formats than I did.
Ever since that, I’ve used the YYYY-MM-DD format of writing dates, encouraging others to use as well and as soon as I found out that was a standard, started to evangelize ISO 8601 (there is an ISO 8601 category on my blog), which – at the time of writing this – had had revisions in 1998 (on 1998-06-15), 2000 (on 2000-12-15) and 2004 (on 2004-12-01).
A lot later I found out that back in 1971, this date format was a recommendation, and in 1976 already a standard. Not nearly as old as Esperanto though (:
Speaking about languages:
At the end of last century, after Delphi 5 added year 2000 support (which made the 16-bit Delphi 1 disappear from the box as the effort to prove the product including all libraries was year 2000 proof), Delphi went cross platform.
The Delphi team working on both Kylix 1 and Delphi 6, the also added a DateUtils unit which provides a lot of cuntionality, including support for weak numbers. The first test version always assumed week 1 was the one with januari first in it. As ISO 8601 also indicates how the first week of a year should be determined, a couple of people (Jeroen W. Pluimers, Glenn Crouch, Rune Moberg and Ray Lischner) provided code that fixed this and a few other things in the unit. We even got mentioned by Cary Jensen!
That code is now also part of the RemObjects ShineOn library. That DateUtils unit is now on GitHub.
A Delphi XE version of the code (and a Delphi 2007 one) are now at NickDemoCode (Thanks Nick Hodges!).
Delphi is not the only environment having ISO 8601 support. XML has, .NET has, etc: it is now wide spread.
So follow your tools, and start using it yourself as well (:
Too bad the ISO 8601 standard text is not available publicly:
I remember the Y2K preparation era where the ISO-8601 standard was freely available at http://www.iso.ch/markete/8601.pdf, soon after the Year 2000, the PDF got locked behind a payment engine.
ISO suffers from heavy link rot too, for instance the ISO 3166 country codes used to be at http://www.iso.org/iso/prods-services/iso3166ma, but are now at http://www.iso.org/iso/home/standards/country_codes.htm. What about HTTP 303 or 302 redirect here guys?
Luckily people keep cached copies:
- “ISO 8601” “First edition” “1988-06-15” filetype:pdf
- “ISO 8601” “Second edition” “2000-12-15” filetype:pdf
- “ISO 8601” “Third edition” “2004-12-01” filetype:pdf
–jeroen
via: xkcd: ISO 8601.
SilverWarior said
When I’m writing dates on forums, blogs I ususally use “1st of March 2013” format as I was thought in school when learnign English as foreging language. Until now noone hasn’t complained about this to me.
But in my programs I always store dates in TDateTime variable and then leaves DateTimeUtils to convert this date into string using default system local settings as this makes sure that the date is being shown in the way user is used to.
Thomas Mueller said
You might want to correct the spelling of “week numbers”.
dugjohnson said
But did you notice the “tongue in cheek” denial of his own premise in the hover over tool-tip, wherein xkcd used a different date format.
Having worked in both Europe and the US in the last 12 months, I would prefer the ISO standard myself. I’ll just have to beat myself up when I fail.
jpluimers said
That was the ‘alt text’ thing. Hilarious (:
I love your “beat myself up” phrase. Sounds very familiar.
Angeltveit said
Hehe, I’m not sure if “weak numbers” is a real typo or an intentional typo? It could have been “Weak week numbers”, perhaps ;-)
jpluimers said
LOL: That was my word blindness playing up.
Jim McKeeth said
I like the iso 8601 date format, but when writing I usually use dd-mon-year like 03-Feb-2013, that way I don’t have to worry someone might get confused and mix up the day and month if they don’t know I iso 8601. Maybe I could start using the slightly more standard 2013-Feb-03.
The standard in the US is just messed up any way you look at it.
jpluimers said
About “messed up”: who am I to disagree (:
I don’t use three letter abbreviations as they depend on the language used: http://library.princeton.edu/departments/tsd/katmandu/reference/months.html
Back in the mid 1980s I was in high school, and very bad at foreign languages, especially the latin based ones. I still cannot remember those abbreviations.
Michael made the excellent point about sorting dates, which I forgot in my post as it is so natural to me.
Michael said
YYYYMMDD is the one and only;). It’s almost perfect. You could also 99991231 minius YYYYMMDD (today) and don’t need to sort and still have the actual date on top. Still used in ‘IBM’ or SAP systems to get quick access to the first record – currency conversion for example
jpluimers said
Excellent: I forgot to mention that in my post as the sorting order is so natural (: