Skip to content

Instantly share code, notes, and snippets.

@RobertWarrenGilmore
Last active January 31, 2016 01:05
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RobertWarrenGilmore/32da7da00cfa676cffe1 to your computer and use it in GitHub Desktop.
Save RobertWarrenGilmore/32da7da00cfa676cffe1 to your computer and use it in GitHub Desktop.
proposal for a series of transitional date-time formats towards a sensible standard

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

by Robert Warren Gilmore

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 (East and West) 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 I think we can agree is here to stay.

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 first-hand 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

  • be easy for everyone to understand,
  • be comparable at a glance across geographic locations,
  • be amenable to sorting,
  • be amenable to arithmetic, and
  • expose the most important information with the least work.

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

  • is written the same way by everyone,
  • expresses a given instant the same way regardless of geographic location,
  • starts with the largest quantity and ends with the smallest, and
  • consists of only one unit,
    • that unit being the day.

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 less-than-strict adherence - 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, date-times are easily sortable. 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

  • that we can statically pin a time zone to a place without exceptions and
  • that we no longer have confusing questions of synchronisation around the time of the clock change.

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 town in Washington and equally useful for knowing when my friend is flying out of Frankfurt.

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. 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 astronomical precision for easy watch 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

year-month-day
2016-03-30.24634

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

year-day
2016-090.24634

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

day
736,055.24634

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 nugget of ease 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 735,995. What's my age? About 736,000 - 727,000 = 9,000 days.

Also, did you notice that this format shaves two digits off of the zoneless ISO format for more precision? 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

  • We're accustomed to writing the date in our myriad different formats.
    • I'll elaborate on this in another essay on 10/02/2016.
      • On second thought, I'd better put that off until 15/02/2016.
        • Or even until 10/20/2016.
  • We're accustomed to daylight saving time.
    • Our step stools have a sense of purpose.
    • Taking the clock off of the wall is a great reminder that the house needs dusting.
    • We have an excuse to show up an hour late for things one day per year.
  • We're accustomed to time zones.
    • Talking about the position of the sun relative to a person's own location as a metaphor for time allows every person to be the centre of his own little universe.
    • It makes perfect sense to fly from Seattle to New York City in ten hours and to fly back in four.
  • We're accustomed to hours, minutes, and seconds.
    • It would be too hard for the average person to use fractional parts to express the time. After all, look at what a hard time we've had dealing with fractional parts of a dollar, a pound sterling, or a euro.
  • We're accustomed to months.
    • Their irregular lengths keep us on our toes.
    • They have cute names, such as September (meaning seventh), October (meaning eighth), November (meaning ninth), and December (meaning tenth).
    • How will the electric company know when to bill us without months?
      • Billing every thirtieth day is too complicated.
      • The uneven spacing serves a very important purpose that goes without saying.
  • We're accustomed to years.
    • Familiar terms like "the terrible twos", "teenager", "thirties", and "octogenarian" would not make sense any more.
    • I sound really old when I say that my age is 9,000.
    • People won't buy cake and wear conical hats as often.
      • (However, those glasses with the zeroes as eye holes that people wear in Times Square would once again make sense.)
    • That's a lot of candles!
    • Pumpkin pie would not always be in season on my birthday. :(
    • You'll have to look up when the next Perseids meteor shower is if you want to see it. This is a major inconvenience, as you currently have it memorised in the Gregorian calendar.

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 they would be well worth the ease of having a date-time format that is as simple as can be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment