Datenqualität

Länder, die ihre Zeitzonenregeln geändert haben

Man nimmt leicht an, dass man die Zeitzone eines Landes für immer kennt, sobald man sie einmal kennt. In der Praxis ändern Regierungen ihre Zeitzonenpolitik häufiger, als den meisten bewusst ist. Ein Land beschließt vielleicht, nach Jahrzehnten keine Sommerzeit mehr zu verwenden. Ein anderes verschiebt seine Standardzeit um eine Stunde, um sich enger an einen wichtigen Handelspartner anzupassen. Ein großes Land zieht vielleicht die interne Grenze zwischen zwei seiner Zeitzonen neu, wenn sich die regionale Verwaltung ändert. Keine dieser Kategorien ist hypothetisch. Solche Änderungen geschehen irgendwo auf der Welt ziemlich regelmäßig, auch wenn bei einem einzelnen Land Jahre oder Jahrzehnte zwischen zwei Änderungen liegen können.

Genau dieses Problem löst die IANA-Zeitzonendatenbank. Statt pro Land eine einzige aktuelle Zeitverschiebung zu speichern, erfasst sie jede benannte Zeitzone als Verlauf von Regeln über die Zeit und ergänzt Einträge, sobald eine Regierung eine Änderung ankündigt. Software, die auf eine gepflegte, regelmäßig aktualisierte Kopie dieser Datenbank zugreift, übernimmt Änderungen ohne eigene Codeänderungen. Software, die Zeitverschiebungen pro Land fest einprogrammiert, etwa in einer einmal während der ersten Entwicklung geschriebenen Tabelle, wird unbemerkt falsch, sobald ein erfasstes Land seine Regeln ändert, und dieser Fehler meldet sich nicht von selbst. Sie liefert einfach falsche Ortszeiten für dieses eine Land, bis es jemandem auffällt.

Deshalb ist es auch riskant, nur eine UTC-Zeitverschiebung ohne benannte Zeitzone zu speichern, wenn die Daten länger als ein paar Monate verwendet werden sollen. Eine heute erfasste Zeitverschiebung ist eine Momentaufnahme einer Regel, die sich ändern kann. Ein Zeitzonenname wie Pacific/Auckland oder Asia/Kolkata verweist auf den gepflegten Regelsatz. Solange die zugrunde liegende Datenbank aktuell gehalten wird, bleiben Berechnungen mit diesem Namen daher auch nach einer Regeländerung korrekt, ohne dass Sie Ihre eigenen Daten anfassen müssen.

Die praktische Empfehlung für alle, die auf Zeitzonendaten aufbauen, ist einfach. Speichern Sie in Ihrer eigenen Datenbank Zeitzonennamen, keine rohen Zeitverschiebungen. Halten Sie die Zeitzonenbibliothek oder Datenquelle, auf die Sie sich verlassen, in einem sinnvollen Rhythmus aktuell, denn eine veraltete Kopie verhält sich genau wie eine fest einprogrammierte Tabelle, sobald ein erfasstes Land seine Regeln ändert. Und behandeln Sie eine Zeitzonenabfrage bei Berechnungen, die an echte, sich ändernde Daten gebunden sind, als etwas, das frisch aufgerufen wird, und nicht als Wert, den Sie unbegrenzt cachen.

Unsere Zeitzonenabfrage liefert für jede Koordinate den aktuellen IANA-Zeitzonennamen und die Zeitverschiebung, berechnet anhand eines gepflegten Regelsatzes statt einer statischen Tabelle. Nur so bleiben die Ergebnisse korrekt, wenn Länder ihre Regeln im Laufe der Zeit anpassen.