Il est midi !
(Entre 5 et 10 changements chaque année !)
🔗 https://time.is/time_zone_news« Représentation de la date et l'heure »
2024-04-17T07:35:00-07:00
Il n'y en a pas !
Proposition d'étendre la RFC3339 :
2023-10-29T02:30:00+02:00[Europe/Paris]
new Date('2024-04-17T14:35:00').toString()
"Wed Apr 17 2024 14:35:00 GMT+0200 (heure d’été d’Europe centrale)"
new Date('2024-04-17T14:35:00').toString()
"'Wed Apr 17 2024 14:35:00 GMT+0000 (temps universel coordonné)"
`DateTime` ne gère ni les secondes intercalaire, ni n'assure le suivi d'aucune règle de changement d'heure d'été.
[…]
Si vous voulez aussi gérer les fuseaux horaires, alors bon courage […]
Semble très bien géré*
OffsetDateTime, ZonedDateTime and Instant all store an instant on the time-line […]
Documentation package Java `time`
Le format JavaZDT vient de Java !
* mais je ne maîtrise pas le language
php.net/datetime
documentation SPL zoneinfo* mais je ne maîtrise pas le language
Pire librairie possible : API pas pratique, sujette à l'erreur, inconsistante, pas vraiment de gestion des fuseaux horaires
d = new Date()
>> Date Wed Apr 17 2024 14:35:00 GMT+0200 (heure d’été d’Europe centrale)
d.getDay() // en fait : day of week
>> 3
d.getDate() // day ?
>> 17
d.getMonth() // 0-indexé
>> 3
le standard SQL possède un mélange étrange de types de date/heure et de possibilités.documentation de Postgresql
Testons :
SELECT '2024-01-01 00:00+10'::timestamptz;
timestamptz
------------------------
2023-12-31 15:00:00+01
(1 row)
Toutes les dates et heures liées à un fuseau horaire sont stockées en interne en UTC.
CONVERT_TZ(datetime, from_tz, to_tz)
datetime AT TIME ZONE to_TZ
| value | timezone |
| ------------------- | ------------ |
| 2024-04-17T12:35:00 | Europe/Paris |
Même combat que pour SQL, mais avec un peu plus de flexibilité
{
"date": "2024-04-17T14:35:00+02:00",
"timezone": "Europe/Paris"
}
© xkcd
© S. Grégeois