On Wed, 06 Jun 2012, Russ Allbery wrote:
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
Since ISO 8601 is not freely available (or at least was not freely available years ago), and the freely-available summaries did not mention this, no, I had not noticed.
(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?
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 think that RFC 2822 got that from a convention that was first advocated by Dan Bernstein in 1996. The oldest references that I was easily able to find are from March 1996: A message from djb@koobera.math.uic.edu (D. J. Bernstein) to the DRUMS mailing list (which was working on what became RFC 2822): <http://notabug.com/2002/drums-archive/1320> The time shown MUST be the sender's local time. Exception: the zone -0000 indicates that the local time is unavailable or meaningless, and that the time shown is the actual time. (In contrast, the zone +0000 indicates that the time shown is both local time and actual time.) and an entry in the qmail CHANGES file <http://www.qmail.org/netqmail/CHANGES>: 19960325 change: time zone is now -0000 instead of +0000. encouraging DRUMS to use this as an i-don't-know-the-local-time indicator. --apb (Alan Barrett)