bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug in date: --rfc-3339=seconds and --rfc-3339=ns options do *not* o


From: Romain Lenglet
Subject: Re: bug in date: --rfc-3339=seconds and --rfc-3339=ns options do *not* output timestamps in RFC 3339 format
Date: Thu, 4 May 2006 12:38:17 +0900
User-agent: KMail/1.9.1

Paul Eggert wrote:
> Romain Lenglet writes:
> > Replacing "T" with a space character is an option in ISO
> > 8601, but not in RFC 3339.
>
> This is backwards.  ISO 8601 does its utmost to require "T",
> but RFC 3339 explicitly contradicts this, saying in section
> 5.6 "Applications using this syntax may choose, for the sake
> of readability, to specify a full-date and full-time separated
> by (say) a space character."

Please don't cut out what does not suit you! ;-)
The full quotation is:
"NOTE: ISO 8601 defines date and time separated by "T". 
Applications using this syntax may choose, for the sake of 
readability, to specify a full-date and full-time separated by 
(say) a space character."
Here, "this syntax" refers to ISO 8601!
I admit that the wording is odd, and I first interpreted it 
wrong.


But it is unambiguous in Appendix A:
"ISO 8601 states that the "T" may be omitted under some 
circumstances.  This grammar requires the "T" to avoid 
ambiguity."
Here, "This grammar" refers to the (slightly modified to make 
the "T" mandatory) complete syntax of ISO 8601, which is 
specified in Appendix A.
Which means, that ISO 8601 allows to replace "T" with a space, 
but RFC 3339 does not.

It is very unambiguous in the ABNF specifications, both in 
Appendix A (full ISO 8601 syntax, modified to disallow a space 
instead of "T" unlike ISO 8601), and in section 5.6 (RFC 3339 
syntax, which is a subset of the ISO 8601 syntax).
In Appendix A:
"iso-date-time     = date "T" time"
In section 5.6:
"date-time       = full-date "T" full-time"

(That's why they used the ABNF notation: to avoid ambiguity!)

Both ISO 8601 and RFC 3339 allow the "T", but RFC 3339 explicitly 
disallows to replace it with a space.
I hope that I clarified the situation? :-)

-- 
Romain LENGLET




reply via email to

[Prev in Thread] Current Thread [Next in Thread]