Warum zeigt Ihre KI-gebaute App die falsche Uhrzeit an? (Und wie Sie Zeitzonen richtig lösen)

Eine App zeigt die falsche Uhrzeit an, wenn sie eine Uhrzeitangabe statt eines Zeitpunkts speichert, die Zeitzone des Servers statt die des Nutzers anzeigt oder die Sommerzeit ignoriert — die stille Ursache hinter doppelt gebuchten Terminen und Erinnerungen um 2 Uhr nachts.

Warum zeigt eine KI-gebaute App die falsche Uhrzeit an?

Weil zwei Menschen an unterschiedlichen Orten beide auf die korrekte Uhrzeit schauen und trotzdem zwei verschiedene Zahlen sehen können — genau diese Diskrepanz ist das gesamte Zeitzonen-Problem. Eine Kundin in Madrid bucht Ihren 15-Uhr-Termin; Sie sitzen in Mexiko-Stadt, und auf Ihrem Bildschirm erscheint dieselbe Buchung um 8 Uhr morgens. Sie starren darauf und sind sich sicher, dass etwas kaputt ist.

Nichts ist kaputt. Es ist gleichzeitig 15 Uhr in Madrid und 8 Uhr morgens in Mexiko-Stadt — derselbe Moment. Sie haben beide recht. Diese Lücke — in der zwei Menschen, beide im Recht, zwei unterschiedliche Zahlen sehen — steckt hinter einer erstaunlichen Anzahl von “meine App verhält sich komisch”-Bugmeldungen.

Sie schleicht sich ein, weil Sie beim Bauen und Testen die einzige Person sind, an einem Ort, auf einem Gerät. Alles passt zusammen. Zeitzonen zeigen ihre Zähne erst, wenn eine zweite Person, irgendwo anders, auf dieselbe Uhrzeit schaut. Wenn Ihre App Nutzer in mehr als einer Stadt hat — oder irgendeine Art von geplanter Nachricht verschickt — wird das früher oder später auf Sie zukommen. Besser, Sie begegnen dem Problem, bevor es Sie überrascht.

Was ist eine Zeitzone eigentlich genau?

Eine Zeitzone ist die “Orts”-Hälfte einer Uhrzeit — der Teil, der einen universellen Zeitpunkt in eine lokale Uhrzeitangabe verwandelt. Hier die eine Idee, die alles Weitere verständlich macht: Jede Uhrzeit hat zwei Teile.

  1. Der Zeitpunkt — ein einzelner Moment, der überall auf der Erde derselbe ist.
  2. Der Ort — wo Sie sich befinden, wenn Sie auf die Uhr schauen.

“15 Uhr” für sich allein bedeutet nichts. 15 Uhr wo? Computer lösen das, indem sie den Zeitpunkt in einem neutralen, ortlosen Format speichern (Ihr Builder wird von “UTC” sprechen — stellen Sie sich das als die Uhr an einem festen Referenzpunkt vor) und ihn dann, sobald jemand hinschaut, in dessen lokaler Zeit anzeigen.

Wenn eine App die falsche Uhrzeit anzeigt, liegt es fast immer daran, dass sie einen der beiden Teile aus den Augen verloren hat — entweder hat sie den Ort vergessen, oder sie hat von Anfang an nie einen echten Zeitpunkt gespeichert.

Was verursacht Zeitzonen-Bugs in Apps?

Drei bestimmte Fehler verursachen fast jeden Zeitzonen-Bug: das Speichern einer Uhrzeitangabe statt eines echten Zeitpunkts, das Anzeigen der Server-Zeitzone statt der des Nutzers, und das Ignorieren von Sommerzeit-Umstellungen.

1. Die App speichert eine Uhrzeitangabe, keinen Zeitpunkt. Jemand wählt “9:00 Uhr”, und die App speichert den Text “9:00 Uhr” ohne zugehörigen Ort. Jetzt zeigt sie “9:00 Uhr” für alle, überall — was manchmal genau das ist, was Sie wollen (eine Medikamenten-Erinnerung, die für jede Person um 9 Uhr Ortszeit auslösen soll), und manchmal eine Katastrophe (ein Live-Webinar, das für alle zum selben Zeitpunkt starten soll). Wenn die App falsch rät, welches der beiden Sie meinten, driftet die Zeit auseinander.

2. Die App zeigt die Serverzeit, nicht die des Nutzers. Ihre App läuft auf einem Computer in einem Rechenzentrum — sagen wir, in Virginia. Wenn ihr niemand etwas anderes gesagt hat, zeigt sie fröhlich allen die Zeit von Virginia an. Ihre Nutzer in London liegen jetzt einen ganzen Nachmittag daneben und haben keine Ahnung, warum.

3. Die Sommerzeit verschiebt die Uhren, und Ihre App merkt es nicht. Zweimal im Jahr stellen viele Orte ihre Uhren um eine Stunde um. Ein wiederkehrendes “jeden Dienstag um 9:00 Uhr”-Meeting, das Sie im Winter angelegt haben, findet plötzlich im Sommer um 8 oder 10 Uhr statt, wenn die App sich auf einen festen Zeitversatz statt auf einen Ort festgelegt hat.

Drei reale Versionen davon

Die Veranstaltung, die dreimal begann. Ein Gründer baute eine einfache Seite für einen Online-Workshop mit einer einzigen aufgedruckten Startzeit: “Beginn um 18:00 Uhr.” Teilnehmer in drei Ländern lasen “18:00 Uhr” jeweils als ihre eigene lokale 18-Uhr-Zeit. Ein Drittel kam eine Stunde zu spät, ein paar eine Stunde zu früh, und alle gaben dem Link die Schuld. Die Lösung war kein besserer Link — sondern jeder Person ihre eigene lokale Startzeit anzuzeigen, mit ausgeschriebener Zeitzone.

Der Newsletter, der um 2 Uhr nachts ankam. Eine E-Mail, die “jeden Morgen um 8:00 Uhr” verschickt werden sollte, ging um 8:00 Uhr Serverzeit raus. Für die europäische Hälfte der Empfängerliste war das mitten in der Nacht. Die Öffnungsraten dieser Abonnenten waren miserabel, und es sah nach einem Inhaltsproblem aus. Es war ein Zeitzonen-Problem.

Der doppelt gebuchte Sonntag. Eine Buchungs-App ließ zwei Personen denselben Massage-Termin in der Nacht reservieren, in der die Uhren “zurückgestellt” wurden — weil 1:30 Uhr in jener Nacht zweimal vorkam und die App beide Male als denselben Zeitpunkt behandelte. Selten, aber genau die Art von Bug, die Sie einen echten Kunden und eine echte Entschuldigung kostet.

Was sollten Sie Ihren Builder bitten, um Zeitzonen zu reparieren?

Bitten Sie um vier konkrete Dinge, in einfacher Sprache — Sie müssen davon nichts im Detail lernen. Kopieren Sie einfach:

“Speichere jede Uhrzeit als UTC-Zeitpunkt, und speichere zusätzlich die Zeitzone jedes Nutzers.”

“Wenn du eine Uhrzeit anzeigst, zeig sie in der Zeitzone der betrachtenden Person an, und setze die Zeitzone direkt daneben — zum Beispiel 15:00 Uhr (deine Zeit) oder 15:00 Uhr MESZ.”

“Verankere alles Wiederkehrende — Erinnerungen, Zeitpläne, wiederkehrende Termine — an einem Ort (wie ‘America/Mexico_City’), nicht an einer festen Stundenzahl, damit die Sommerzeit automatisch berücksichtigt wird.”

“Lass mich testen, als wäre ich in einem anderen Land.”

Der letzte Punkt ist wichtiger, als er klingt — und damit sind wir beim Teil, den Sie selbst erledigen können.

Wie testen Sie Ihre App auf Zeitzonen-Bugs?

Die meisten Zeitzonen-Bugs finden Sie in zwei Minuten, ohne einen Nutzer in einem anderen Land zu brauchen — täuschen Sie einfach vor, in einem zu sein:

  1. Öffnen Sie die Datum-und-Uhrzeit-Einstellungen Ihres Telefons oder Computers und stellen Sie die Zeitzone auf einen weit entfernten Ort um — Tokio, London, egal wohin.
  2. Laden Sie Ihre App neu.
  3. Schauen Sie sich jede Stelle an, an der eine Uhrzeit auftaucht. Ergibt sie noch Sinn? Sagt sie Ihnen, wessen Zeit das ist?

Wenn eine Buchung, die um 15 Uhr sein sollte, jetzt ohne jede Erklärung 4 Uhr morgens anzeigt, haben Sie einen Bug gefunden, bevor ein Kunde es tat. Stellen Sie Ihre Einstellungen danach zurück. Für die Fälle mit wiederkehrenden Erinnerungen und Sommerzeit ist der sicherste Test, einen Freund in einem anderen Land zu bitten, sich ein bestimmtes Datum anzuschauen und Ihnen zu sagen, welche Uhrzeit er sieht.

Müssen Sie sich überhaupt um Zeitzonen kümmern?

Ehrlich gesagt — manchmal nicht, und das darf man ruhig sagen. Wenn wirklich jede Person, die Ihre App nutzt, in derselben Stadt ist — ein Dienstplan-Tool für das Personal eines lokalen Restaurants, eine Anmeldeliste für einen Nachbarschaftsclub —, können Sie die kniffligen Teile größtenteils überspringen. Seien Sie einfach konsistent, und beschriften Sie die Uhrzeit, damit kein Zweifel bleibt.

Zeitzonen werden zu einem echten Thema, sobald eines von zwei Dingen zutrifft: zwei Menschen an unterschiedlichen Orten teilen sich eine Uhrzeit, oder Ihre App verschickt irgendetwas nach Zeitplan. In dem Moment, in dem Sie diese Grenze überschreiten, ist die günstigste Versicherung auch die einfachste: Zeigen Sie die Zeitzone immer direkt neben der Uhrzeit an. Diese eine Gewohnheit beseitigt die Mehrdeutigkeit, die den meisten dieser Geschichten zugrunde liegt — noch bevor die tieferen Lösungen greifen.

Wenn Sie das nächste Mal ein Datums- oder Uhrzeitfeld zu Ihrer App hinzufügen, stellen Sie sich also eine Frage, bevor Sie weitermachen: Wessen Uhrzeit ist das? Wenn Sie das laut beantworten können, sind Sie den meisten Apps, die Menschen bauen, schon voraus.