[tz] -00:00

Russ Allbery rra at stanford.edu
Wed Jun 6 21:20:06 UTC 2012

Zefram <zefram at 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 at stanford.edu)             <http://www.eyrie.org/~eagle/>

More information about the tz mailing list