Zeitzonen und Kalenderfallen
Kurz: Zeit ist in der Programmierung tückisch: Zeitzonen, Sommerzeit, Schaltjahre und Schaltsekunden sorgen für Fehler, die nur zu bestimmten Zeitpunkten auftreten.
Genauer: Die wichtigste Regel lautet: intern immer in UTC speichern und rechnen, nur zur Anzeige in die Zeitzone des Nutzers umwandeln. So bleiben Zeitpunkte eindeutig und vergleichbar.
Im Detail
- Sommerzeit: An einem Tag im Jahr hat ein Tag 23, an einem anderen 25 Stunden. „Morgen gleiche Uhrzeit” ist nicht immer +24 Stunden.
- Zeitzonen-Namen:
Europe/Berlin(IANA-Name) statt fester Abkürzungen wie „CET”, denn Regeln ändern sich. - Formate: ISO 8601 (
2026-10-13T08:00:00Z) ist eindeutig und sortierbar. - Daten ohne Uhrzeit: Ein Geburtstag ist ein Kalendertag, kein Zeitpunkt. Als UTC-Mitternacht gespeichert, rutscht er in anderen Zonen auf den Vortag.
- Schaltjahr: 29. Februar prüfen. Die Regel: durch 4 teilbar, außer durch 100, es sei denn durch 400.
- Unix-Zeit: Sekunden seit dem 1. Januar 1970 UTC. 32-Bit-Zähler laufen 2038 über.
Siehe auch: UTF-8 und Zeichenkodierung