Re: Fun avec les TZ

From: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
To: "Bruno Friedmann" <bruno(at)ioda-net(dot)ch>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Fun avec les TZ
Date: 2017-10-22 07:27:53
Message-ID: 9e09df2e-1e41-4299-8e7d-750da68896e5@manitou-mail.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bruno Friedmann wrote:

> 'Sat Oct 21 15:01:06 GMT+02:00 2017'::timestamptz,
> 'Sat Oct 21 15:01:06 GMT+02:00 2017'::timestamp,
> 'Sat Oct 21 15:01:06 +02:00 2017'::timestamptz;
>
> 2017-10-21 19:01:06+02
> 2017-10-21 15:01:06
> 2017-10-21 15:01:06+02
>
> On voit bien que l'interprétation de GMT+2 donne un résultat
> abhérant de 19h00 pour un 15h00 CEST (c'est genre +2+2).

En fait le résultat est juste parce que pour la norme POSIX,
GMT+02:00 c'est 2 heures à l'ouest du méridien de Greenwich,
au contraire de l'expression de la 3eme colonne qui fait référence
à la norme ISO-8601, orientée dans l'autre sens (2 heures à l'est
de Greenwich), celui qui est utilisé le plus souvent.
Quand on est 2h à l'est de GMT, par exemple l'heure d'été française,
on est bien décalé de 4h par rapport à un fuseau qui serait 2h à
l'ouest de GMT.

Cf la doc:
https://doc.postgresql.fr/10/datatype-datetime.html

" Un autre problème à conserver en tête est que, pour les noms des
fuseaux horaires POSIX, les décalages positifs sont utilisés pour
les emplacements situés à l'ouest de Greenwich. Partout ailleurs,
PostgreSQL™ suit la convention ISO-8601 pour qui les décalages
positifs de fuseaux horaires concernent l'est de Greenwich"

La même confusion existe en-dehors de Postgres,
par exemple sur un système Ubuntu, avec la commande date
du système et une conf locale sur Europe/Paris:

$ date
dimanche 22 octobre 2017, 09:23:06 (UTC+0200)

$ TZ=GMT+2 date
dimanche 22 octobre 2017, 05:23:06 (UTC-0200)

parce que TZ suit POSIX alors que l'affichage par défaut
de la date suit l'autre convention.

--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite

--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Bruno Friedmann 2017-10-22 10:11:33 Re: Fun avec les TZ
Previous Message Yves Dorfsman 2017-10-21 20:06:06 Re: Fun avec les TZ