the Robertorium

proposal for a series of transitional date-time formats towards a sensible standard

the current state of date-time expression

Many different standards currently exist for the expression of date-times. There are standards that cycle on the solar year, on the lunar year, and on periods longer than a solar year. To my knowledge there is no standard that does not cycle on the day. Over time, there has been some standardisation of date-time formats around the world, with most of the world using (almost) the same time format and much of the world having adopted the Gregorian calendar. Still, variations exist - in the United States, the numerical date is written month/day/year; in France it is written day/month/year; there is a standard gaining in popularity that writes the date year-month-day. Add to these different formats the concept of time zones and it becomes a nontrivial task to decipher and compare date-times that were not written by people in the same place using the same standard. All of these problems are exacerbated by globalisation, which seems unlikely to reverse soon.

Computers represent date-times by counting seconds or milliseconds from a particular moment, but that format doesn’t give a human reader the information that he wants at a glance: Yesterday? Tomorrow? Next week? Some time after I am dead and gone? This evening? It does, however, do a good job of answering questions like: Which of these times is later? What will the date be 500 days from today? How long is my flight from Seattle to Beijing?

what a better state would look like

I assert that it would be ideal for date-time expression to be as uniform as possible. Further, it should be systematic and have few or no quirky rules. I liken this to metrication. There were once many different and quirky standards for measuring length. A mile is how many feet? How many cubits is that? Furlongs? Are we talking about American feet or English feet? Quick - divide one and a half miles by thirteen thousand and give me the approximate answer in appropriate units. Metrication solved both problems (differing standards and quirky standards) by having the whole world (minus one glaring exception) use the same units, units that require only the most trivial arithmetic to work with.

But, being American, I have seen abundant evidence of how resistant people can be to change. My countrymen still haven’t metricated. If there were a date-time standard that worked better, that would be no guarantee that it would be adopted. People do better with smaller changes, so perhaps a series of smaller changes could be built up over time to effect a big change to a good date-time format.

A good format would

To those ends, I propose that we, the global population, gradually transition to a date-time standard that

the series of standards

1. ISO 8601

year-month-day hour:minute:second +/-timeZoneShift
2016-03-29 21:54:44 -08:00

I added spacing and removed the superfluous letter T between the date and time. Don’t worry about the loose adherence to ISO - by the end of this, we’ll leave this standard far behind.

This standard is already somewhat adopted and has the advantage that, within a given time zone, the chronological order of date-times is identical to their lexicographical order. It is based on the Gregorian calendar - anyone currently using the Gregorian calendar need only change the order of the parts. People using AM and PM would make the switch to 24-hour time.

2. eliminate daylight saving time

This is low-hanging fruit. Nobody has to change anything - in fact, we can stop getting up on our step stools to change our clocks twice per year. Parts of the world that do not observe daylight saving time would ignore this. Benefits of this change include

3. unify time zones

year-month-day hour:minute:second
2016-03-30 05:54:44

Much like UTC, we would express the time the same way in every geographic location. You might think that this would be inconvenient. In the current system I know that astronomical noon is at (about) 12:00 and that astronomical midnight is at (about) 00:00 regardless of where I am. But I do have to know what time zone I’m in, or my knowledge of the current zoneless time isn’t especially useful beyond knowing how sunny it is without looking out a window. It is useful for coordinating events with people in my own time zone, but it’s less useful across time zones. Why not have our cake and eat it, too? A standard without time zones would be useful for knowing when the store closes in my neighbourhood in Seattle and equally useful for knowing when my colleague is available for a video chat in India.

In the current system, one can tell the position of the sun by the time, and one must know one’s time zone for many practical reasons, so we are already accustomed to memorising a piece of time-related information about a place. In a system without time zones, we swap knowledge of the time zone for knowledge of roughly when the local midnight is. In England, it’s about 00:00. In eastern New Zealand it’s about 12:00. In Seattle it’s about 08:00. Precise astronomical times can be calculated if need be, just as they are in the current system, but for everyday situations, we can reasonably trade our current astronomical analog (not even a very precise or useful one) for effortless, global clock synchronisation. This is the trade-off that was considered when we switched to time zones from a system where every longitude had its own slightly different time. Global synchronisation merely takes that idea a step further.

4. express the time as a fractional part of a day


Oh no! Where did our precious hours, minutes, and seconds go?

Who needs them? Five digits past the decimal point gives us sub-second precision. (That’s one less digit than hh:mm:ss.) There’s nothing special about the length of an hour, minute, or second. Fractions of a day will work perfectly well for practical applications. A work shift lasts about 0.3 days. A meeting might last 0.05 days. You cook an egg for 0.0005 days. A really great kiss might last 0.00005 days. We could add spacing or symbols, just like in the current system, to make adjacent digits easier to read: 0.00 00 5. You would watch your clock tick over in increments of 0.00 00 1 days (just about how often your second hand ticks now). I would get out of bed at .7, around the time my friend in Ireland gets off of work, and go to bed at .35 to get 0.35 days of sleep. “.35” also saves some space over “12:30 AM PST” or even just “08:30”.

5. eliminate months


Thirty days hath September,
April, June, and November.
Thirty-one hath all the rest,
Except for February clear
which hath only twenty-eight
and twenty-nine in a leap year.

If the fact that we have a nursery rhyme dedicated to remembering how many days are in each month (February, why?!) isn’t a clue that months are more trouble than they’re worth, then I don’t know what is. What day is 90 days past 2016-01-30? To answer, you can’t just divide by thirty. You have to know whether it’s a leap year and count different days for each month.

In this system, we would still know what season it was just by looking at the day. 020 is winter in the northern hemisphere. 197 is summer. The day would express all of the information formerly separated between the month and the day, with one fewer digit in total.

6. eliminate years


This kind of looks like a plain old number, doesn’t it? It is. This format already exists and is called a Julian date (not to be confused with the Julian calendar). It’s just the number of days that have passed since day 0 (the first of January in the year 1 CE). What could be simpler?

Unfortunately, we would give up the ability to discern the season at a glance. To know when to harvest your crops next, you’d have to add 365.25 to the current date. It seems reasonable to give up that particular shortcut to have a date-time format that requires no effort to understand or to work with beyond the effort inherent in understanding and working with everyday numbers.

Date math would become trivial. Pick a date. Add a year to it. Pretty easy. Add a day to it. Couldn’t possibly be easier. Add half a day. Peasy. I was born on 726,776, and the current date is 736,847. What’s my age? About 737,000 - 727,000 = 10,000 days.

Also, did you notice that this format shaves two digits off of the zoneless ISO format and is more precise? Include the symbols and spaces and that’s a savings of five characters, or 26%.

Honestly, I can hardly imagine any reason why we haven’t instituted such a system already. Here is my best attempt:

reasons not to do this

Silliness aside, being accustomed to something is a pretty weak reason to stick with it in the face of so many advantages to be gained by doing things in a more sensible way. There would be challenges in the transition, just as there were with metrication, but I think that the ease of having a date-time format that is as simple as can be would be well worth it.

(This post was originally a Gist on Github. I have updated it since I originally published it about 1,000 days ago.)

comments powered by Disqus