Zefram <zefram@fysh.org> writes:
Speaking of this, did anyone else notice that
(a) ISO 8601 requires a zero offset to be denoted with a "+" sign, forbidding "-00" (ISO 8601:2000 clause 5.1.1 or ISO 8601:2004 clause 3.4.2), and
(b) RFC 3339 is supposedly a profile of ISO 8601, and
(c) RFC 3339 *does* allow "-00", denoting the same offset as "+00", but connoting that it's not specifying a preferred offset?
I got suspicious about this some months ago, but only got around to confirming the conflict last week. I'm a bit ashamed that I didn't notice it in time to influence RFC 3339, but in my defence I wasn't actually in the WG.
This convention didn't originate from RFC 3339. It comes from RFC 2822 (published April 2001 but in progress long, long before that): The form "+0000" SHOULD be used to indicate a time zone at Universal Time. Though "-0000" also indicates Universal Time, it is used to indicate that the time was generated on a system that may be in a local time zone other than Universal Time and therefore indicates that the date-time contains no information about the local time zone. I was a member of the RFC 2822 working group towards the end of the process, but I think this was already well-settled before then. It is, however, new in RFC 2822 compared to RFC 822. Appendix B of RFC 2822 lists it as a change from earlier standards: 7. Specifically allow and give meaning to "-0000" time zone. RFC 822 (August 1982) allowed both -0000 and +0000 with the same meaning: zone = "UT" / "GMT" ; Universal Time ; North American : UT / "EST" / "EDT" ; Eastern: - 5/ - 4 / "CST" / "CDT" ; Central: - 6/ - 5 / "MST" / "MDT" ; Mountain: - 7/ - 6 / "PST" / "PDT" ; Pacific: - 8/ - 7 / 1ALPHA ; Military: Z = UT; ; A:-1; (J not used) ; M:-12; N:+1; Y:+12 / ( ("+" / "-") 4DIGIT ) ; Local differential ; hours+min. (HHMM) (Note the notorious error in the definition of the military zones.) RFC 822 says that this form comes from ANSI X3.51-1975: The other remaining two forms are taken from ANSI standard X3.51-1975. One allows explicit indication of the amount of offset from UT; the other uses common 3-character strings for indicating time zones in North America. This text is unchanged from RFC 733 (November 1977). A quick Google search doesn't immediately reveal an online free copy of ANSI X3.51-1975. -- Russ Allbery (rra@stanford.edu) <http://www.eyrie.org/~eagle/>