Sarebbe estremamente utile avere una funzione integrata per convertire un timestamp tra fusi orari utilizzando il database tz (maggiori informazioni: https://data.iana.org/time-zones/tz-link.html e https://en.wikipedia.org/wiki/Tz_database ).Ho regolarmente bisogno di convertire i timestamp da un fuso orario a un altro, ma non posso semplicemente applicare un offset, ma è necessario cercare gli offset per convertire il timestamp.Inoltre, è necessario del lavoro aggiuntivo poiché alcune località hanno l'ora legale e altre no, e le date di inizio/fine dell'ora legale sono specifiche della località.
Questa funzione potrebbe essere qualcosa del genere:
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
Idealmente, tutti i valori datetime verrebbero modificati in modo da contenere il fuso orario e impostati sul valore predefinito UTC, se non specificato.
Ogni fuso orario dovrebbe utilizzare il nome del database TZ ( https://en.wikipedia.org/wiki/List_of_tz_database_time_zones ), come è usato in altri linguaggi di programmazione (es: Python).
Ecco una domanda su questo problema: https://community.jmp.com/t5/Discussions/Time-zone-conversion/mp/331514#M58032
Per una descrizione molto divertente del problema del fuso orario, guarda questo video: https://www.youtube.com/watch?v=-5wpm-gesOY&t=3s . Dura 10 minuti, ma vale il *tempo* (scusate il gioco di parole).
Bel video di riferimento, grazie.
JSL BLOB in un orologio ESP32 discute alcuni dei problemi di fuso orario. Ho anche capito brevemente meglio l'International Dateline dopo averlo realizzato questo video con due nomi di giorni sul bordo inferiore.
Lavorare con il tempo è davvero difficile.