Der Unix-Zeitstempel zählt die Sekunden seit dem 1. Januar 1970 um 00:00 Uhr UTC. Er kennt keine Zeitzone und keine Sommerzeit — genau deshalb wird er in Datenbanken und Schnittstellen verwendet.
Verwirrung entsteht durch die Einheit: Viele Systeme zählen Sekunden, JavaScript und einige Schnittstellen dagegen Millisekunden. Ein Zeitstempel mit dreizehn Stellen sind Millisekunden, einer mit zehn Sekunden.
Das Jahr-2038-Problem
Wird der Zeitstempel als vorzeichenbehaftete 32-Bit-Zahl gespeichert, ist am 19. Januar 2038 um 03:14:07 UTC Schluss: Die nächste Sekunde springt auf das Jahr 1901. Betroffen sind ältere eingebettete Systeme, nicht moderne 64-Bit-Software.
Das Gegenstück liegt hinter uns: Am 9. September 2001 überschritt der Zeitstempel die Milliarde, und einige Systeme, die zehnstellige Werte annahmen, mussten angepasst werden. Beides sind Fälle desselben Fehlers — eine Annahme über die Größe einer Zahl.
Warum Schaltsekunden nicht vorkommen
Der Unix-Zeitstempel definiert jeden Tag als exakt 86 400 Sekunden. Eine eingefügte Schaltsekunde wird deshalb nicht gezählt, sondern übersprungen oder wiederholt — die Zeitrechnung bleibt einfach, um den Preis kleiner Ungenauigkeiten.
Für fast alle Anwendungen ist das die richtige Entscheidung. Wer Sekunden exakt zählen muss, etwa in der Astronomie, verwendet TAI statt UTC und rechnet den Versatz gesondert.