Datum & Zeit

Unix-Zeitstempel erklärt: Sekunden oder Millisekunden, Zeitzonen und das Jahr-2038-Problem

Wann ist 1700000000? Warum verwenden manche Systeme 13-stellige Zahlen? Warum ist die Uhrzeit um genau eine Stunde verschoben? Die meisten Zeitfehler verschwinden, sobald man ein paar Konzepte verstanden hat.

Was ein Unix-Zeitstempel ist

Ein Unix-Zeitstempel (Unixzeit, Epoch-Zeit) ist eine einzelne Ganzzahl, die die Sekunden seit dem 1. Januar 1970, 00:00:00 UTC, der Unix-Epoche, zählt. 0 ist 1970-01-01 00:00:00 UTC und 1700000000 ist 2023-11-14 22:13:20 UTC.

Einen Zeitpunkt als eine einzige Zahl darzustellen, hat viele Vorteile. Der Abstand zwischen zwei Zeitpunkten ist eine einzige Subtraktion, Sortieren und Vergleichen sind trivial, und derselbe Moment hat überall denselben Wert — unabhängig von Zeitzone oder Datumsformat.

0           → 1970-01-01 00:00:00 UTC
1700000000  → 2023-11-14 22:13:20 UTC
1735689600  → 2025-01-01 00:00:00 UTC
2147483647  → 2038-01-19 03:14:07 UTC

10 oder 13 Stellen: Sekunden oder Millisekunden?

Ein heutiger Zeitstempel in Sekunden hat 10 Stellen. JavaScripts Date.now() und Javas System.currentTimeMillis() liefern jedoch Millisekunden — 13 Stellen. Wer beides verwechselt, erhält Daten wie den 21. Januar 1970 oder Daten fünfzigtausend Jahre in der Zukunft.

Zählen Sie die Stellen: 10 bedeutet Sekunden, 13 Millisekunden, 16 Mikrosekunden. Dokumentiert eine API die Einheit nicht, prüfen Sie sie und multiplizieren oder dividieren Sie beim Umrechnen durch 1.000.

Ein Zeitstempel hat keine Zeitzone

Die wichtigste Tatsache: Ein Zeitstempel hat keine Zeitzone. 1700000000 ist in Berlin und in New York derselbe Moment. Eine Zeitzone kommt erst ins Spiel, wenn die Zahl als lesbares Datum angezeigt wird: Derselbe Wert ist 22:13 in UTC und 23:13 in Berlin im Winter (UTC+1).

Der klassische Fehler „um eine Stunde verschoben“ entsteht, wenn diese Regel verletzt wird — man speichert UTC, zeigt es aber als Ortszeit an, oder man speichert eine Ortszeit ohne Offset und liest sie als UTC. Speichern und übertragen Sie in UTC (oder als Zeitstempel); anzeigen in der Zeitzone des Nutzers.

Fallstricke der Sommerzeit

Deutschland stellt wie der größte Teil Europas und die USA die Uhren im Frühjahr vor und im Herbst zurück — allerdings nicht an denselben Tagen. „New York liegt sechs Stunden hinter Berlin“ stimmt daher nur einen Teil des Jahres; einige Wochen im März sowie Ende Oktober bis Anfang November beträgt der Abstand nur fünf Stunden.

Verwenden Sie IANA-Zonennamen wie America/New_York oder Europe/Berlin statt fester Offsets wie -05:00, damit Umstellungen automatisch berücksichtigt werden. Wenn Sie Meetings mit Teams im Ausland planen oder Jobs einrichten, prüfen Sie den tatsächlichen Offset für das betreffende Datum mit einem Zeitzonenrechner.

Das Jahr-2038-Problem

Als vorzeichenbehaftete 32-Bit-Ganzzahl gespeichert, erreicht ein Zeitstempel sein Maximum bei 2.147.483.647, also am 19. Januar 2038 um 03:14:07 UTC. Eine Sekunde später läuft der Wert über, wird negativ und springt zurück ins Jahr 1901. Das ist das Jahr-2038-Problem.

Moderne Betriebssysteme und Sprachen verwenden meist 64-Bit-Zeit, doch 32-Bit-Werte überleben in alten eingebetteten Geräten, INT-Datenbankspalten und Dateiformaten. Systeme, die weit in der Zukunft liegende Daten verarbeiten — langlebige Zertifikate oder Kredite mit 30 Jahren Laufzeit —, können schon heute an die Grenze stoßen. Verwenden Sie in neuen Entwürfen daher 64-Bit-Ganzzahlen oder echte Datumstypen.

Schaltsekunden und Genauigkeit

Die Unixzeit behandelt jeden Tag als genau 86.400 Sekunden und ignoriert Schaltsekunden. Sie kann daher minimal von der astronomisch exakten verstrichenen Zeit abweichen, was normale Anwendungen getrost ignorieren können. Die Generalkonferenz für Maß und Gewicht hat beschlossen, Schaltsekunden bis 2035 abzuschaffen.

Fügen Sie eine Zahl in den Zeitstempel-Konverter von AIBIZAP ein: Er erkennt automatisch Sekunden oder Millisekunden und zeigt das Datum in UTC und der gewählten Zone. Nutzen Sie den Zeitzonenrechner zum Vergleichen von Ortszeiten und den Cron-Generator für Jobs, die zu festen Zeiten laufen.

Mit diesen Tools ausprobieren

Weitere Ratgeber

Alle Ratgeber