Issue: there are 27 different ways of writing a date.
Engineers: We most make a common standard that is unambiguous, easy to understand and can replace all of these.
Issue: there are 28 different ways of writing a date.
Joke aside, I really think the iso standard for dates is the superior one!
2013-02-27 = 1984
2013-02-27 is a weird way of writing 1361923200
I agree with the ISO approach, but unfortunately without mainstream adoption in a majority of countries it’s just another standard.
The sane way of dealing with it is to use UTC everywhere internally and push local time and local formatting up to the user facing bits. And if you move time around as a string (e.g. JSON) then use ISO 8601 since most languages have time / cron APIs that can process it. Often doesn’t happen that way though…
The BEST way is to use the number of seconds after the J2000 epoch (The Gregorian date January 1, 2000, at 12:00 Terrestrial Time)
ISO 8601 goes from 1582 (Julian calendar adoption) but can go even further with agreement about intention and goes down beyond the millisecond. Not sure why I want an integer from the year 2000 which only represents seconds.
Generally yes, that’s the way to do it, but there are plenty of times where you need to recreate the time zone something was created for, which means additionally storing the time zone information.
Definitely. If your servers aren’t using UTC, then when you’re trying to sync data between different timezones, you’re making it harder for yourself.
This is what I try to do in the few apps I’ve written that had to deal with dates and times
deleted by creator
The clue was in “user facing bits”. UTC represents time as an absolute. If you want to show local time, or deal with daylight savings you run UTC through a function on its way to the user.
I think you skipped part of the sentence.
I propose that we amend the ISO to require the days of the week be named after their etymological roots in that language.
English Days of the Week:
Day of the Sun
Day of the Moon
Day of Týr
Day of Odin
Day of Thor
Day of Frēa
Day of SaturnImagine dating a meeting, “Day of Odin, May 7, 2025.” Imagine a store receipt that says, “Day of Thor, June 5, 2025.” Imagine telling a friend, “July 4th falls on a Day of Frēa this year!”
THIS IS WHAT WE COULD HAVE. THIS IS WHAT WE HAVE LOST. THIS IS WHAT WAS STOLEN FROM US.
We could bring it back. We could make this the norm. We could make this real. We could summon this bit of ancient magic back into our world. Let’s remember what we actually named these days for! BRING BACK THE DAY OF THOR!
That would work better if Latin wasn’t there before English. Mars Victor!
In the last company I work for, the department was created from zero, and my boss just let me take all the technical decisions so from the begging everything was wrote in ISO-8601. When I left it was just the way it was, if you try to use any other date format anywhere something is going to give you an error.
This is the way.
I am a big fan of iso 8601, I just wish it was possible to write more dates than February 27th, 2013 with it
Yeh but for that one day though, everything just works so well.
Harhar
Rich is right, since this is the date format that sorts correctly in filenames.
And it is easily extensible to YYYY-MM-DDThh:mm:ss to include the time of day
Are you an obsidian user?
Haha yep, you caught me. I’m a fan of the unique note feature
I feel called out and I’m hiding in the bushes reading comments.
Won’t be true after 9999-12-31, however.
Oh no! The Y10K bug!
Can’t wait for the Y40k bug, when Tyranids begin to infect our brains.
Bold of you to assume there isn’t already a genestealer cult on Terra. Washington specifically.
That…would explain a lot
If I, my software, or my data last this long, I will have nearly 8000 years to resolve it. Which is to say, the year 9998 is going to get busy.
Can be solved with a small shellscript adding a leading zero to all filenames with the format.
If humanity survives until then, we can implement 9-digit dates and delay the problem until Y100K.
natural sort ftw
I’d be curious to see a sorting algorithm that doesn’t handle YYYYY-MM-DD with YYYY-MM-DD properly. If you drop the dashes you still get a proper numeric order. If you sort by component, you still get the proper order. Maybe a string sort wouldn’t? Off the top of my head the languages I’m thinking either put longer strings later, giving us the proper order, or could put 1YYYY- ahead of 1YYY-M so maybe string sorting is the only one that’s out.
Lexical sorting (string sorting/alphabetical order sorting) is what I believe they were referring to when talking about file names.
The fact that you don’t have to do any parsing of the string at all, just do a straight character-by-character alphabetical sort, and they will be sorted by date, is a great benifit of this date scheme. That means in situations where no special parsing is set up (eg, in a File Explorer windows showing a folders contents sorted alphabetically) or where your string isn’t strictly date only (eg, a file name format such as ‘2025-05-02 - Project 3.pdf’) you can still have everything sorted by date just by sorting alphabetically.
Its this benifit that is lost when rolling over to 5-digit years.
I bet you could make a one liner to rename files with YYYY-MM-DD to 0YYYY-MM-DD fairly easily. Not a problem.
It’s an easy fix at least, just check if you’re comparing numbers on both sides and switch to a simple numerical sort.
I think Windows used to get this wrong, but it was fixed so long ago that I’m not even sure now.
Who’s Rich? Did you mean Randall?
…dammit, the only comics I read are XKCD and OOTS and I done fucked up.
How can you sleep on Oglaf
The good ones tend to filter their way out.
(I do also read whatever John Allison is currently working on.)
Banished to back in time to hang with Ozy and Millie
Omg thank you!! Everyone sees my notes thinks I’m crazy for obsessing… It’s the correct fucking sort!
Where I live, “DD. MM. YYYY” is the standard but some old tombstones use
Do you know why one would ever do that? 20(02/05)25 feels like the “Don’t Dead Open Inside” of dates.
Which is exactly why they’re used on tombstones. See, the world makes sense after all!
That’s just a layout. Let’s not confuse presentation with content.
ISO 8601 allows all kinds of crazy time stamps. RFC 3339 is much nicer and simpler, and the sweet spot is at the intersection of ISO 8601 and RFC 3339.
Then again, ISO 8601 contains some nice things that RFC 3339 does not, like ranges and durations, recurrences…
Alt text:
ISO 8601 was published on 06/05/88 and most recently amended on 12/01/04.
But… that’s not the right way. Are you saying the ISO8601 violates ISO8601?
- so, apparently not I just whooshed, I didn’t even noticed the dates are ambiguous.
The joke is that they’ve not been given in ISO8601 format, and also that they’re both ambiguous. For the second one, we can’t even tell which of the ends is the year.
Honestly Randall absolutely would put the year in the middle just to fuck with us
Publication 1988-06-05, latest amendment 2004-12-01.
I almost expected the two dates to use different formats, but no, they’re just both “the American way”.
Well you can only cram in so many jokes at once. Would have been funny though
Knowing Americans it’s probably the middle.
You found the joke
Might be the best xkcd alt text of all time. I knew if from memory, and as soon as I saw the comic I thought “I bet someone quoted the alt text in the top comment”.
My goodness, some of the comments in here must come from people who thought that those writing the standard were morons who did no research.
I don’t think they’re morons…just slaves to convention and compatibility. Not many ways to get away from that and justify it.
There are several people in the comments saying they have to use 27 Feb 2013 because they work with people all over the world. I’m really confused - what does that solve that 2013-02-13 does not? I know that not every language spells months the English way so “Dec” or “May” aren’t universal. Is there some country that regularly puts year day month that would break using ISO 8601 or RFC 3339?
I think learning all abbreviations for different months in different languages is more complicated than just learning that the time is sorted from largest to smallest unit.
No! It’s the other way around, from largest to smallest is a mess and it makes no sense
If you name files or other data with ISO 8601 then they’re always sorted chronologically when you go largest to smallest.
I know, right! I’ve been campaigning for this for everyday numbers. For example, twenty seven should be written smallest first: 72. Likewise this year is 5202, and next year 6202. That way no-one’s going to be confused at all.
What you said is stupid
So true, bestie! That’s why all the clocks in my house are formatted ss:mm:hh
When someone asks you what date it is, no one says it’s 2025 May 5th. We all know what year it is, and we all know what month we are in. It’s the day component that is usually the unknown.
we all know what month we are in
Literally had two coworkers today that did not realize it was May
Oh, yeah, guess it is.
Guilty of that myself this very day. I did it a very spectacular way too. Some coworkers came up to me and said “man, April was a busy month for you!” I boldly replied “and it ain’t even over yet!” I was promptly corrected.
That’s locality of reference, though, similar to how you can say “here” or “there” for spatial coordinates. Everybody is aware of the year and month, so you omit it as given. The order of significance is still year, month, day.
Imagine if a harried time traveler jumped out of their time machine and asked you the date. Would it make sense to say, “Why, it’s the 1st.” (Or more possible, if a friend awoke from a coma.) If you ask somebody when they were born, most people will give the year at minimum. Of course, there are some weirdos out there, and you recognize them when you ask when they were born, and they say, “on a Tuesday.” Same for the date of the Norman invasion of Great Britain. If you don’t already have some sense of history, then knowing it happened about the 20th isn’t very edifying.
Writing dates is usually in order to keep track for the future, when the year and month may be different.
It solves the familiarity problem, when getting somebody to do something by a date they readily understand at a glance takes precedence over making everybody in the world change a lifelong habit.
27 Feb 2013 is unambiguous- regardless of where you’re from or how you write your dates, you can’t confuse 2013 for the month or day, you can’t confuse Feb for a day or week, and if you can’t figure 27 out, then we have bigger problems!
2013-02-27 is also unambiguous unless you’re aware of a country that uses year day month, is not?
2013-02-03 though. Someone would fuck it up
2013-02-27 is also unambiguous.
Hey what’s today’s date?
It’s 2025 -
No like the DAY?
Yeah, it’s 2025, 02 -
Not the month, the day - What’s today’s actual date?
Like I was saying, if you’d let me finish, “2025 - 02 - 27”
I’m mostly joking, but when it comes to info about dates, I think the most evctive format it one that organizes the information within a heirachy that provides follow up answers.
Formatting dates as day / month / year does just that. Provides the day it is, followed by the month and year as that is the order that information is usually needed in.
I find providing the year first (or month) is much more ambiguous as neither are the day the actual date falls on.
Wow, what a relatable use-case…
I was said that western mindset goes from small scale to larger scale, like 02-05-2025. Hmm, maybe that’s West vs East propaganda material?
Counterpoint: What you say applies in daily life, not when querying an archive of any kind. Year-month-day is the natural sorting order if the question is “which file/folder/column in the spreadsheet is the one I need?” In which case you narrow it down to first the year, then the month, then the day.
I started using YYYY-MM-DD to name files and directories once I noticed that they then became automatically sorted chronologically when I sort the containing directory alphabetically by file name.
If you need to ask for the current date so often, I suggest getting a watch. (not sure if joking vs predisposed for this part)
If you’re asking so often about recent things then, yes, hearing the redundant parts out loud is only irksome because they’ve already been delivered to you (by yourself).
On the other hand, if you’re asking someone when an arbitrary event happened (e.g. when reminiscing), having the year first quickens context.
We need to get rid of the month/day and just refer to days by number. Today is day 121 in the year 2025, it’s super clear.
Why bother with years, it’s day 1,456,7834
That’s an interesting epoch. Almost, but not quite, 40,000 years ago
Time travelers would have to endure a few less awkward moments though.
I used to work for a company that agreed with you, well at least some clown in management did. Even though it was an Australian company, at least part of the problem was we had an office in Manila, and they speak “American English” which seemed to include the awful date system too. We dealt with a lot of files being issued to clients / received from vendors etc. Because the “official” system used those fucked up dates, everyone ran their own secondary sets of data folders in / out with everything done in ISO dates so you could actually sort it properly.
Which I was the justification used when my work decided to use 2025-May-01.
It’s close enough to the iso date that nobody will be confused but with that 1 extra layer of security blanket to separate months and days.
Of course, that does ruin sorting, so I think it was a bit silly, nobody has ever used yyyyddmm so it’s all a bit theoretical to me.
27 Feb is no more or less ambiguous than 02-27. The problems are when you choose a proper example, like 03/02