Re: T is a mandatory date time separator in RFC3339 but documentation states differently

Поиск
Список
Период
Сортировка
От Roman Frołow
Тема Re: T is a mandatory date time separator in RFC3339 but documentation states differently
Дата
Msg-id CAFZ1f-9D3iCcGF8+mLgRffUp6i7m-2mh1GJ5UZbfcZiyjaXQzQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: T is a mandatory date time separator in RFC3339 but documentation states differently  (Roman Frołow <rofrol@gmail.com>)
Ответы Re: T is a mandatory date time separator in RFC3339 but documentation states differently  (Erik Wienhold <ewie@ewie.name>)
Список pgsql-docs

On Mon, Nov 13, 2023 at 12:03 PM Roman Frołow <rofrol@gmail.com> wrote:
So what should be changed?

postgresql docs say that it is consistent with rfc3339 using space.

Also look at this:

> In addition, an uppercase "T" character MUST be used to separate date and time

https://validator.w3.org/feed/docs/error/InvalidRFC3339Date.html

I would say that postgresql is not consistent with rfc3339, but rather with ISO8601 which is very flexible in regard to separator etc.

On Mon, Nov 13, 2023 at 11:23 AM Erik Wienhold <ewie@ewie.name> wrote:
On 2023-11-11 23:45 +0100, PG Doc comments form wrote:
> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/16/git.html
> Description:
>
> >ISO 8601 specifies the use of uppercase letter T to separate the date and
> time. PostgreSQL accepts that format on input, but on output it uses a space
> rather than T, as shown above. This is for readability and for consistency
> with RFC 3339 as well as some other database systems.

This note probably refers to section 5.6. of RFC 3339 [1] which allows
applications to choose space over "T".

> https://www.postgresql.org/docs/current/datatype-datetime.html
>
> Short answer: T (or t as discouraged alternative).
>
> After reading on this as much as I could, it turns out the time separator
> must be a T or t. What has made think this way is first of all this thread
> in the GNU lists where F. Alexander Njemz contacted the authors of RFC3339
> Graham Klyne and Chris Newman asking if T is mandatory and got this response
> from Mr. Klyne:
>
> > In short: "yes"
> >
> > Per section 5.5, the intent in this draft was to specify a timestamp
> format using elements from and compatible with 8601, but eliminating as far
> as reasonable any variations that could make timestamp data harder to
> process. This includes making the 'T' mandatory in date+time values.
>
> Just for clarity's sake, this is stated in the section 5.5:
>
> > Simplicity is achieved by making most fields and punctuation mandatory.

But the word "most" certainly leaves some wiggle room.

> This clearly clashes with a non-mandatory T and strongly makes me think that
> the this syntax in that problematic passage refers to ISO8601 and not
> RFC3339.
>
> https://stackoverflow.com/questions/63783868/what-are-valid-date-time-separators-in-rfc3339-strings/63882162#63882162

[1] https://datatracker.ietf.org/doc/html/rfc3339#section-5.6

--
Erik

В списке pgsql-docs по дате отправления:

Предыдущее
От: Daniel Gustafsson
Дата:
Сообщение: Re: Missing ;
Следующее
От: Daniel Gustafsson
Дата:
Сообщение: Re: add new acronym "AM"