Di recente ho ricevuto una notifica sul mio telefono che annunciava che erano disponibili nuove definizioni di fuso orario e che dovevo riavviare il telefono. Non ricordo di aver visto questo tipo di notifica in passato, ma sulla base di alcuni dei miei recenti progetti di analisi dei dati ho avuto una buona idea di cosa potesse trattarsi.
La Internet Assigned Numbers Authority (IANA) mantiene un database, tz database, di codice e dati che rappresentano la storia del tempo locale per molte località del mondo. Usando le definizioni di fuso orario contenute nel database tz è possibile determinare l’offset UTC per un particolare fuso orario in una particolare data. Questo include definizioni per l’inizio e la fine dell’ora legale e anche cambiamenti completi del fuso orario per un paese o una regione. Queste informazioni cambiano più frequentemente di quanto si possa supporre. Per esempio, una recente modifica al database ha aggiunto le Fiji che iniziano a osservare l’ora legale dalla seconda domenica di novembre dal 2019 invece che dalla prima domenica. I dati contenuti in questo database sono complessi e vanno oltre lo scopo di questo articolo.
Se hai scritto del codice per convertire il tempo da un fuso orario all’altro, usi una moltitudine di app che hanno bisogno di convertire tra fusi orari, o usi siti web per fare la conversione, allora quasi certamente in qualche modo o forma hai interagito con il database tz. Il database è generalmente incorporato all’interno di sistemi software come i sistemi operativi (Windows, Android, iOS, ecc.) e all’interno di ambienti come librerie (ad esempio Java, Python e .Net, ecc.).
Il database tz viene aggiornato periodicamente per riflettere le modifiche apportate dagli organi politici ai confini dei fusi orari, gli offset UTC e le regole dell’ora legale. Questo è importante per i programmatori e gli sviluppatori di software da tenere a mente in quanto i cambiamenti possono avere un impatto per gli utenti finali e che gli aggiornamenti al codice o alle librerie possono essere necessari per riflettere i cambiamenti, soprattutto se non sono stati aggiornati in diversi anni. È anche importante per gli utenti finali mantenere aggiornato il software per garantire che le librerie utilizzate dalle applicazioni su dispositivi come computer e telefoni contengano i recenti cambiamenti nel database tz al fine di convertire correttamente il tempo tra le diverse zone.
Quindi, cosa è contenuto nei cambiamenti più recenti? Un aggiornamento del database tz è stato rilasciato il 23 aprile 2020 (2020a) per includere gli aggiornamenti alle seguenti informazioni:
- Il Marocco attualmente osserva permanentemente l’ora legale (UTC+01) per tutto l’anno, tranne che per il mese di Ramadan dove torna al suo fuso orario UTC originale. Inizialmente era stato stimato che il Marocco sarebbe tornato a UTC+1 il 24 maggio 2020 (fine del Ramadan), tuttavia è stato ufficialmente annunciato che il cambiamento di orario sarebbe avvenuto il 31 maggio 2020.
- Il territorio canadese dello Yukon ha annunciato che osserverà l’ora legale permanente del Pacifico (UTC-07) tutto l’anno invece di tornare all’ora solare del Pacifico (UTC-08) nel novembre 2020.
- Aggiungimento dell’ora legale per Shanghai nel 1919.
Nel grande schema delle cose questi cambiamenti sembrano minori, ma in alcune applicazioni l’uso di tempi convertiti in modo errato può avere gravi implicazioni.