Il serait extrêmement utile d'avoir une fonction intégrée pour convertir un horodatage entre les fuseaux horaires à l'aide de la base de données tz (plus d'informations : https://data.iana.org/time-zones/tz-link.html et https://en.wikipedia.org/wiki/Tz_database ).J'ai régulièrement besoin de convertir des horodatages d'un fuseau horaire à un autre, mais je ne peux pas simplement appliquer un décalage, mais cela prend du temps de devoir rechercher les décalages pour convertir l'horodatage.De plus, un travail supplémentaire est nécessaire car certains emplacements ont l'heure d'été et d'autres pas, et les dates de début/fin de l'heure d'été sont spécifiques à l'emplacement.
Cette fonction pourrait être quelque chose comme ceci :
ConvertTimeZone( ts, tzFrom, tzTo ) //ts is the time stamp will be converted from tzFrom to tzTo
//example
ConvertTimeZone( 05May2022:19:31:07, "UTC", "America/Los_Angeles" ) //result: 05May2022:12:31:07
Idéalement, toutes les valeurs datetime devraient être modifiées pour contenir le fuseau horaire et être définies par défaut sur UTC, si elles ne sont pas spécifiées.
Chaque fuseau horaire doit utiliser le nom de la base de données TZ ( https://en.wikipedia.org/wiki/List_of_tz_database_time_zones ), comme cela est utilisé dans d'autres langages de programmation (par exemple : Python).
Voici une question sur ce problème : https://community.jmp.com/t5/Discussions/Time-zone-conversion/mp/331514#M58032
Pour une description très humoristique du problème de fuseau horaire, regardez cette vidéo : https://www.youtube.com/watch?v=-5wpm-gesOY&t=3s . Il dure 10 minutes, mais en vaut bien le * temps * (pardonnez le jeu de mots).
Belle référence vidéo, merci.
JSL BLOB dans une horloge ESP32 discute de certains des problèmes de fuseau horaire. J'ai aussi brièvement mieux compris la ligne de date internationale après avoir fait cette vidéo avec deux noms de jour sur le bord inférieur.
Travailler avec le temps est vraiment difficile.