Over the years, I have collected several possible additions or enhancements to the ISO 8601 standard when I encountered them. Some of them I just created myself. Recently, I have begun to harmonize them and publish the result at International Calendar. The page has an Agenda of items I will try to incorporate in the near future.
It is hard – for me at least – to search for suggestions for other improvements on the net, because most keywords are also used in general discussion on either the superiority of ISO 8601 over other date-time formats or the software implementation of the standard itself. I would appreciate pointers to or replies describing other enhancements or clarifications. You may, of course, also edit the page directly.
I know that it is a benefit of a standard to restrict possibilities to a necessary minimum, hence International Standard Calendar, which is automatically generated from the other article. Hardly anyone will ever need to refer to a certain week of a Gregorian month in a date format. The articles describe this anyway, because one would intuitively extend the standard in a very limited number of ways which partially conflict with each other – the parallel existence of formats allows for a coherent self-justifying system. By not breaking user expectations (too much) I hope to satisfy more people than by adding just my pet formats.
A frequent feature mentioned missing from ISO 8601 – besides completely alternative (e.g. lunar) calendars – is the indication of which year count and leap rule is being used. This especially affects historians and astronomers, i.e. Western dates prior to the 16th (or 17th, 18th, 19th, 20th) century using the Julian calendar. This new feature would free users of manual date conversion before data interchange. There is a straight-forward way to do this: add a single-letter indicator, e.g. Gregorian ‘G’ and Julian ‘J’. The question is where to put it.
- Before the date (or datetime): G2012, G2012-09-24T12:00Z
- After the year
- before the separator: 2012G, 2012G-09-24T12:00Z
- after the separator: 2012-G, 2012-G09-24T12:00Z
- Between date and time:
- before the ‘T’ separator: 2012G, 2012-09-24GT12:00Z
- instead of the ‘T’ separator: 2012G, 2012-09-24G12:00Z
- After the date (or datetime): 2012G, 2012-09-24T12:00ZG
I currently describe two solutions, because there are different, but overlapping and therefore confusable use-cases. A letter in front of the year selects a leap rule by leap item that specifies the cycle length, an epoch and a year count, see International Calendar/Date marker where some table rows are available in comments only at the moment. A letter after the separator after the year, however, is used to select different subdivisions of the year, e.g. ‘Q’ for 13-week quarters, ‘M’ for 4-week months, ‘F’ for fiscal 30-day months or ‘S’ for astronomic seasons and zodiac signs.
I am not sure how to exempt some nonsensical combinations and how to avoid duplicate markers (DRY principle). The solution seems to work adequately only with 365/366-day and (aligned) 52/53-week calendars. I don’t think, although tempting, it should be possible to change the week cycle (e.g. first day, null days) this way. Do you have any ideas or comments?
Currently the ‘D’ date marker is the same as none, i.e. the default case. I consider changing this to whatever new standard leap rule, probably based on a 293-year cycle, might be selected, because it is only reused in the optional alternate URL notation, which also needs revision. Since 31 cycles of 293 years each, i.e. 9083 years, contain almost exactly 112341 lunations, is it reasonable to use this rounded number for the definition of ‘L’ months (with a mean of 29.5305899 days)?
Astronomic winter lies almost entirely in the second year. Would you use ‘0’ and ‘4’ to make it accessible from both years involved, or would you choose ‘1’ and make every season (like weeks) belong entirely to one year? Do you think the design of references to zodiacs is sound, or would you rather expect ‘01’ through ‘12’? (Starting where?)
I guess I will drop the ‘F’DDD format, because I don’t know how to assign the excessive 5 or 6 days this way. The other fiscal formats would have a zero quarter ‘F0’ or month ‘F00’ containing only these, or select months would have a day ‘00’. Also, a day of quarter format would be possible then. I still haven’t read up on how a 360-day year is usually mapped onto a common calendar year.
How would you incorporate work shifts? (This can be useful for production timestamps. I’ve seen it being used with an ‘S’ prefix.) Add them as times, e.g. …‘T’S => 2012-09-21T2, or to days, e.g. …D‘-’S => 2012-W40-2-3, or to weeks, e.g. …‘W’WW‘-’SS => 2012-W40-09? Any ideas for timetables that don’t cover all of the day (or week), e.g. a school schedule running each workday from 08:00 through 15:00 with 45min lessons and several breaks of different lengths?
I appreciate any feedback on this, either in the comments here or on the Talk page.