Unix-Zeitstempel und Zeitzonen erklärt
Computer erfassen die Zeit als eine einzige Zahl: die Anzahl der Sekunden seit einem festen Zeitpunkt. Menschen lesen die Zeit als Datum, Uhrzeit und Ort. Fast jeder Fehler mit Datumsangaben entsteht bei der Übersetzung zwischen beidem – ein Termin, der nach der Zeitumstellung um eine Stunde verschoben ist, ein Datum, das als 1970 erscheint, ein Export, der um einen Tag danebenliegt. Dieser Ratgeber erklärt, was die Zahl bedeutet, wie du ihre Einheit erkennst und warum derselbe Zeitpunkt in jeder Zeitzone eine andere Ortszeit hat.
Was ein Unix-Zeitstempel zählt
Ein Unix-Zeitstempel ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 um 00:00:00 UTC vergangen sind – einem Zeitpunkt, der als Unix-Epoche bezeichnet wird. Am 24. September 2026 um 12 Uhr mittags UTC lag er bei 1.790.251.200.
Die Zahl ist zum selben Zeitpunkt überall auf der Erde dieselbe. Sie enthält keine Zeitzone: Die Zone kommt erst ins Spiel, wenn die Zahl in ein Datum umgewandelt wird, das ein Mensch lesen soll. Deshalb sind Zeitstempel der sichere Weg, Zeitpunkte zu speichern und zwischen Systemen auszutauschen, und Ortszeiten sind nur für die Anzeige gedacht.
Unix-Zeit ignoriert außerdem Schaltsekunden. Jeder Tag wird mit genau 86.400 Sekunden gezählt, und wenn eine Schaltsekunde eingefügt wird, wiederholt die Uhr einfach eine Sekunde. Für fast jeden Zweck bleibt das unsichtbar, und Schaltsekunden sind ein Auslaufmodell: 2022 beschloss die Generalkonferenz für Maß und Gewicht, das Einfügen von Schaltsekunden bis 2035 einzustellen.
01. Januar 1970, 00:00:00 UTC: die Epoche selbst.179025120024. September 2026, 12:00:00 UTC.-8640031. Dezember 1969: Negative Zahlen zählen rückwärts.
Sekunden oder Millisekunden?
Derselbe Zeitpunkt wird oft in zwei Einheiten angegeben. Unix-Werkzeuge, Datenbanken und die meisten APIs verwenden Sekunden; JavaScript, Java und viele Logging-Systeme verwenden Millisekunden. Bei Datumsangaben aus diesem Jahrhundert verrät die Länge die Einheit: 10 Stellen sind Sekunden, 13 Stellen sind Millisekunden.
Eine Verwechslung ist leicht zu erkennen. Ein Millisekundenwert, der als Sekunden gelesen wird, landet Zehntausende Jahre in der Zukunft; ein Sekundenwert, der als Millisekunden gelesen wird, landet im Januar 1970. Erscheint ein Datum als 1970, prüfe als Erstes die Einheit.
Das Jahr-2038-Problem
Viele ältere Systeme speichern den Zeitstempel als vorzeichenbehaftete 32-Bit-Ganzzahl, deren größter Wert 2.147.483.647 ist. Diese Sekunde fällt auf den 19. Januar 2038 um 03:14:07 UTC. Eine Sekunde später läuft die Zahl über und springt auf den 13. Dezember 1901 zurück.
Moderne Betriebssysteme, Datenbanken und Programmiersprachen verwenden 64-Bit-Zeit, die die Grenze Milliarden Jahre in die Zukunft verschiebt. Das Risiko steckt in eingebetteten Geräten, alten Dateiformaten und Datenbankspalten, die als 32-Bit-Ganzzahlen deklariert sind – deshalb können Datumsangaben weit in der Zukunft, etwa das Ende eines Kredits mit 30 Jahren Laufzeit, schon heute Fehler verursachen.
UTC, Offsets und Zeitzonen
UTC, die koordinierte Weltzeit, ist der Bezugspunkt, an dem jede andere Zeit gemessen wird. Sie ändert sich nicht mit den Jahreszeiten. GMT wird oft als Alltagsname dafür verwendet; außer in der Astronomie kann man beide als gleich behandeln.
Ein UTC-Offset gibt an, wie weit die Ortszeit UTC voraus ist oder hinter UTC zurückliegt: Lissabon hat im Winter UTC+0, Berlin UTC+1, São Paulo UTC−3, Tokio UTC+9. Offsets sind nicht immer ganze Stunden – Indien hat UTC+5:30 und Nepal UTC+5:45 –, und sie reichen von UTC−12 bis UTC+14.
Eine Zeitzone ist mehr als ein Offset. Sie ist die vollständige Geschichte der Offsets und Sommerzeitregeln eines Ortes, erfasst in der tz-Datenbank unter Namen wie Europe/Lisbon oder America/Sao_Paulo. Software, die vergangene oder künftige Datumsangaben umrechnet, braucht die Zone und nicht nur den heutigen Offset, denn die Regeln ändern sich: Brasilien zum Beispiel hat die Sommerzeit 2019 abgeschafft.
| Schreibweise | Bedeutung |
|---|---|
2026-09-24T12:00:00Z | ISO 8601 / RFC 3339 in UTC; das Z steht für UTC. |
2026-09-24T13:00:00+01:00 | Derselbe Zeitpunkt, geschrieben mit einem lokalen Offset von UTC+1. |
2026-09-24 13:00 | Eine Ortszeit ohne Offset oder Zone – mehrdeutig, solange du nicht weißt, wo sie geschrieben wurde. |
1790251200 | Derselbe Zeitpunkt als Unix-Zeitstempel in Sekunden. |
Sommerzeit
Viele Länder stellen ihre Uhren im Sommer eine Stunde vor und im Winter wieder zurück, und nicht alle tun das am selben Tag. In der Europäischen Union erfolgt die Umstellung um 01:00 UTC am letzten Sonntag im März und am letzten Sonntag im Oktober, in allen Mitgliedstaaten im selben Augenblick. Die Vereinigten Staaten stellen am zweiten Sonntag im März und am ersten Sonntag im November um, jeweils um 2:00 Uhr Ortszeit. Auf der Südhalbkugel sind die Jahreszeiten umgekehrt, und viele Länder – darunter Brasilien und der größte Teil Asiens und Afrikas – stellen überhaupt nicht um.
Deshalb weicht der Zeitunterschied zwischen zwei Städten jedes Frühjahr und jeden Herbst für einige Wochen um eine Stunde vom Üblichen ab. Genau dann verrutschen wiederkehrende Termine, und deshalb braucht ein Planungswerkzeug die Städte und keine festen Offsets.
Die Umstellungen erzeugen außerdem Ortszeiten, die es nicht gibt, und Zeiten, die zweimal vorkommen. In der Nacht der Umstellung im Frühjahr gibt es 01:30 Uhr in Lissabon nie; in der Nacht im Herbst gibt es 01:30 Uhr zweimal, einmal in der Sommerzeit und einmal in der Winterzeit. Ein Zeitstempel hat keines der beiden Probleme – ein weiterer Grund, Zeitpunkte als Zeitstempel zu speichern.
Häufige Fragen
Warum wird ein Datum als 1. Januar 1970 angezeigt?
Weil der gespeicherte Wert 0 oder leer war oder weil ein Zeitstempel in Sekunden als Millisekunden gelesen wurde. Die Epoche ist das, was angezeigt wird, wenn die Zahl dahinter null oder nahe null ist.
Ist ein Unix-Zeitstempel in UTC oder in Ortszeit?
Weder noch: Er zählt die Sekunden ab einem Startpunkt in UTC und ist an jedem Ort der Erde derselbe. Zu einer UTC- oder Ortszeit wird er erst, wenn er angezeigt wird.
Warum liegt mein Export um einen Tag daneben?
Meist wurde ein Datum ohne Uhrzeit als Mitternacht UTC behandelt und dann in einer Zone angezeigt, die hinter UTC liegt – dadurch wird daraus der Abend des Vortags. Speichere Datumsangaben ohne Uhrzeit als reine Datumswerte, nicht als Zeitstempel.
Was bedeutet das Z am Ende einer Uhrzeit?
Es kennzeichnet die Zeit als UTC, genau wie +00:00. Der Buchstabe stammt aus der militärischen Bezeichnung für diese Zone, „Zulu“.