Vier Zeitzonen, ein Ausfall: Warum die angezeigte Uhrzeit trügt
Vier Zeitzonen, ein Ausfall: Warum die angezeigte Uhrzeit trügt
Im August war mein Server knapp acht Stunden nicht erreichbar. Die Ursache lag beim Hoster, wie ich das herausgefunden habe, steht in Der Server war weg. Der Fehler lag nicht bei mir. Dort ist eine Randnotiz, die mich länger beschäftigt hat als die Ursache selbst: die Uhrzeiten.
Das Problem: vier Uhren an einem Abend
Als ich die Belege für die Analyse zusammentrug, lagen sie in vier verschiedenen Zeitzonen vor:
- das Systemprotokoll des Servers in UTC, der Weltzeit ohne Sommerzeit
- die Absprache mit meinem Hoster in MESZ (UTC+2)
- mein Telefon und mein Tablet in UTC+4
- ich selbst, zu dem Zeitpunkt unterwegs, in UTC-7
Keine dieser Angaben war falsch. Der Fehler entsteht erst, wenn man sie nebeneinanderlegt, ohne zu wissen, welche Uhrzeit aus welcher Zone stammt.
Das erste Beispiel: Meine Überwachung hat den Ausfall per Telegram gemeldet. Die Nachrichten zeigten 05:55 und 13:39. Das liest sich wie eine klare Uhrzeit. Es war aber weder die Serverzeit noch meine Ortszeit noch die Zeit, die jemand in Deutschland auf der Uhr gehabt hätte. Es war die Zone, auf die mein Telefon eingestellt war, als ich die Nachrichten geöffnet habe. Umgerechnet: 03:55 und 11:39 MESZ.
Die Erklärung: gespeichert ist nicht angezeigt
Telegram, dein Mailprogramm und dein Kalender speichern einen festen Moment. Dieser Moment hat keine Zone, er ist einfach ein Punkt auf der Zeitachse. Erst wenn das Gerät ihn anzeigt, rechnet es ihn um, und zwar in die Zone, auf die es in diesem Augenblick eingestellt ist.
Dieselbe Telegram-Nachricht zeigt in Berlin 03:55, in Tiflis 05:55 und in UTC-7 sogar 18:55 am Vortag. Ein einziges Ereignis, drei Uhrzeiten, zwei verschiedene Kalendertage.
Daraus folgen drei Fallen, in die ich bei der Analyse getreten bin oder fast getreten wäre:
Der Screenshot. Ein Screenshot als Beleg zeigt nicht nur das Ereignis, sondern auch die Geräteeinstellung zum Zeitpunkt des Screenshots. Welche Zone eingestellt war, steht nirgends drauf.
Die Mail. Die Bestätigungsmail des Hosters zeigte in der Kopfzeile 08:27. Das ist Geräteanzeige, also UTC+4, umgerechnet 06:27 MESZ. Hätte der Hoster die Uhrzeit in den Mailtext geschrieben, stünde dort seine eigene Zone. Zwei Stunden Unterschied, je nachdem, an welcher Stelle derselben Mail die Uhrzeit steht.
Die KI. Die Analyse habe ich mit einer KI geführt. Sie hat einen Zeitstempel als Ortszeit gelesen statt als Weltzeit und den Neustart damit um Stunden verschoben. Ich habe das korrigiert. Das Werkzeug rechnet schnell, aber die Frage, woher eine Uhrzeit stammt, muss ein Mensch stellen.
Das betrifft nicht nur Server
Wer keinen Server betreibt, begegnet derselben Falle im Alltag. Du schickst einem Geschäftspartner in einer anderen Zone eine Kalendereinladung. Sein Kalender rechnet richtig um. Schreibst du aber in den Einladungstext „um 10 Uhr“, steht dort deine Zone, ohne dass sie dabei steht.
Oder du schickst dem Support einen Screenshot, auf dem eine Zahlung um 14:12 rausgegangen ist. Ob das deine Zeit, die Zeit des Anbieters oder die Zeit eines Geräts auf Reisen war, weiß am anderen Ende niemand.
Mein eigenes Setup ist bei ortsunabhängiger Arbeit der Normalfall: ich in einer Zone, Kunden und Anbieter in einer zweiten, die Server in UTC. Das ist kein Sonderfall, sondern der Alltag von immer mehr Leuten.
Das Ergebnis: eine Zone, und sie steht dabei
Für die Aufarbeitung des Ausfalls habe ich vier Regeln festgehalten, die ich seitdem auch sonst anwende:
- Eine Zone wählen und alles darauf umrechnen. Im Artikel war das MESZ, weil die Leserschaft im deutschsprachigen Raum sitzt. Die Server selbst bleiben in UTC. Das ist richtig so: keine Sommerzeitsprünge, keine Doppeldeutigkeit.
- Die Zone an die erste Uhrzeit schreiben und bei wichtigen Zeitpunkten wiederholen.
- Vor dem Umrechnen klären, woher eine Uhrzeit stammt. Kopfzeile und Nachrichtenliste zeigen die Geräteeinstellung, der Fließtext die Zone des Absenders, ein Protokoll die Einstellung des Systems.
- Zurückgerechnete Zeiten runden, abgelesene exakt angeben. „Gegen 04:00“ ist ehrlicher als eine Genauigkeit, die es nicht gibt.
Die Uhrzeit auf dem Screenshot stimmt. Sie gehört nur oft zu einer anderen Zone als der, die du annimmst.