Zum Inhalt springen

BlogDaten5 Min. Lesezeit

Unix-Zeitstempel erklärt

Ein Unix-Zeitstempel ist nur eine Zahl von Sekunden und sorgt doch für einen steten Strom von Fehlern. Was er zählt, wie Sie Sekunden und Millisekunden auf einen Blick unterscheiden, was mit Zeitzonen und Schaltsekunden passiert und warum 2038 wichtig ist.

Eine Uhr neben dem Zähler 1791244800 und einem Kalenderblatt vom 1. Januar 1970.

Öffnen Sie fast irgendeine Logdatei, einen Datenbankexport oder eine API-Antwort, und Sie finden Zahlen wie 1791288000, wo ein Datum stehen sollte. Diese Zahl ist ein Unix-Zeitstempel, die häufigste Art, wie Computer einen Zeitpunkt speichern. Dieser Ratgeber erklärt, was die Zahl bedeutet, wie Sie ihre Einheit auf einen Blick erkennen, wo Zeitzonen ins Spiel kommen und warum das Jahr 2038 wichtig ist.

Was die Zahl bedeutet

Ein Unix-Zeitstempel ist die Zahl der Sekunden, die seit dem 1. Januar 1970, 00:00:00 UTC vergangen sind, einem Moment, der als Unix-Epoche bekannt ist. Die Wahl des Datums ist historisch: Es war eine bequeme runde Zahl, als das Betriebssystem Unix um 1970 bei den Bell Labs entstand.

Der Reiz liegt in der Einfachheit. Eine einzige Ganzzahl lässt sich leicht speichern, sortieren und vergleichen, zwei Zeitpunkte lassen sich voneinander abziehen, um eine Dauer in Sekunden zu erhalten, und dieselbe Zahl bedeutet überall auf der Welt denselben Augenblick. Ein paar Wegmarken helfen, ein Gefühl für die Größenordnung zu bekommen:

ZeitstempelZeitpunkt (UTC)
01. Januar 1970, 00:00:00
-131. Dezember 1969, 23:59:59
10000000009. September 2001, 01:46:40
123456789013. Februar 2009, 23:31:30
170000000014. November 2023, 22:13:20
200000000018. Mai 2033, 03:33:20
214748364719. Januar 2038, 03:14:07
Alle paar Jahre wird eine runde Zahl erreicht. Die 1.234.567.890 feierten Programmierer 2009 mit Partys, auf denen die Sekunden heruntergezählt wurden.

Negative Zahlen sind erlaubt und zählen rückwärts, also funktionieren auch Daten vor 1970, sofern die lesende Software damit rechnet.

Sekunden, Millisekunden oder mehr?

Die ursprüngliche Definition nutzt Sekunden, aber viele Systeme zählen feinere Einheiten ab derselben Epoche. Date.now() in JavaScript, System.currentTimeMillis() in Java und die meisten Web-APIs nutzen Millisekunden. Datenbanken und Tracing-Werkzeuge nutzen manchmal Mikro- oder Nanosekunden.

Für Daten unserer Zeit verrät die Zahl der Ziffern die Einheit:

  • 10 Ziffern: Sekunden (das gilt bis zum Jahr 2286).
  • 13 Ziffern: Millisekunden.
  • 16 Ziffern: Mikrosekunden.
  • 19 Ziffern: Nanosekunden.

Sie zu verwechseln, ist einer der häufigsten Datumsfehler. Ein als Millisekunden gelesener Sekundenwert landet im Januar 1970; ein als Sekunden gelesener Millisekundenwert landet Zehntausende Jahre in der Zukunft. Wenn ein Datum in Ihrer App als 1970 erscheint, prüfen Sie zuerst, ob ein Faktor 1.000 fehlt. Unser Zeitstempel-Konverter erkennt die Einheit an der Zahl der Ziffern, und Sie können sie überschreiben.

Zeitzonen: Der Zeitstempel hat keine

Ein Zeitstempel bezeichnet einen Augenblick, keine Uhrzeit an der Wand. Der Wert 1791288000 ist in Tokio, Paris und New York derselbe Moment; nur die örtliche Uhrzeit unterscheidet sich. Ihn in ein lesbares Datum umzuwandeln, bedeutet immer, eine Zeitzone zu wählen, und die meisten Fehler passieren bei diesem Schritt.

Das übliche Muster: Zeitstempel in UTC speichern und senden und erst dann in Ortszeit umwandeln, wenn man sie einem Menschen zeigt. Wenn Sie ein lokales Datum zurück in einen Zeitstempel umwandeln, müssen Sie wissen, in welcher Zeitzone dieses Datum lag. „9. März 2025, 09:00“ ist in Berlin ein anderer Zeitstempel als in Chicago, und rund um die Zeitumstellung kann eine Ortszeit sogar zweimal oder gar nicht existieren.

Schaltsekunden werden ignoriert

Die Erdrotation ist leicht unregelmäßig, deshalb hat die offizielle UTC gelegentlich eine Schaltsekunde eingefügt, 27 davon zwischen 1972 und 2016. Die Unix-Zeit tut so, als gäbe es sie nicht: Jeder Tag hat genau 86.400 Sekunden. Während einer Schaltsekunde wiederholt die Unix-Uhr eine Sekunde oder verschmiert sie.

Für fast jeden Zweck ist das ein Vorteil. Der Zeitstempel jedes Datums lässt sich mit einfacher Arithmetik berechnen, und die Differenz zweier Zeitstempel ergibt den Abstand in Kalendersekunden. Nur Anwendungen, die physikalische Intervalle über eine Schaltsekunde hinweg sekundengenau messen müssen, etwa manche wissenschaftliche Systeme, müssen sich darum kümmern. Die internationalen Gremien der Zeitmessung haben beschlossen, bis 2035 keine Schaltsekunden mehr einzufügen.

Das Jahr-2038-Problem

Viele ältere Systeme speichern den Zeitstempel in einer vorzeichenbehafteten 32-Bit-Ganzzahl. Der größte Wert, den sie aufnehmen kann, ist 2.147.483.647, der 19. Januar 2038 um 03:14:07 UTC. Eine Sekunde später läuft die Zahl über und springt auf den kleinsten negativen Wert, den diese Systeme als 13. Dezember 1901 lesen.

Das ist dieselbe Art Problem wie der Jahr-2000-Fehler, und es wird auf dieselbe Weise behoben: mit breiteren Zahlen. Ein vorzeichenbehafteter 64-Bit-Zeitstempel reicht etwa 292 Milliarden Jahre. Moderne Betriebssysteme, Datenbanken und Sprachen nutzen bereits 64-Bit-Zeit, aber eingebettete Geräte, alte Dateiformate und manche Datenbanken mit 32-Bit-Zeitstempelspalten brauchen vor 2038 Updates. Wenn Sie heute ein Dateiformat oder eine Datenbankspalte entwerfen, geben Sie ihr 64 Bit.

Verbleibende Jahre bis zu jeder Grenze, ab 2026 gezählt
  • Vorzeichenbehaftete 32-Bit-Sekunden19. Januar 203812 Jahre
  • Vorzeichenlose 32-Bit-Sekunden7. Februar 210680 Jahre
  • 10-stellige Sekunden20. November 2286260 Jahre

Eine vorzeichenbehaftete 64-Bit-Sekundenzahl reicht etwa 292 Milliarden Jahre, weit jenseits dieser Skala.

Von Hand und im Code umwandeln

In den meisten Sprachen ist die Umwandlung eine Zeile. Ein paar Beispiele:

// JavaScript: Sekunden in ein Date und zurück
new Date(1791288000 * 1000).toISOString(); // "2026-10-06T12:00:00.000Z"
Math.floor(Date.now() / 1000);              // der aktuelle Zeitstempel in Sekunden

# Python
from datetime import datetime, timezone
datetime.fromtimestamp(1791288000, tz=timezone.utc)

-- PostgreSQL
SELECT to_timestamp(1791288000);

Tabellenkalkulationen zählen Tage statt Sekunden, ab ihrer eigenen Epoche. In Excel und Google Tabellen wird ein Unix-Zeitstempel in Zelle A1 mit =A1/86400+25569 zu einem Datum (dann die Zelle als Datum formatieren), weil 25.569 die Zahl der Tage zwischen dem 1. Januar 1900 und dem 1. Januar 1970 im Kalender von Excel ist.

Für schnelle Prüfungen zeigt der Zeitstempel-Konverter den aktuellen Zeitstempel live, wandelt jeden Zeitstempel in ein Datum in der gewählten Zeitzone um (die Einheit erkennt er selbst), arbeitet in die Gegenrichtung von einem Datum aus und misst den Abstand zwischen zwei Daten. Er läuft in Ihrem Browser, die eingefügten Werte bleiben also auf Ihrem Gerät.

Fragen und Antworten

Warum zeigt mein Datum den 1. Januar 1970?

Das Programm hat einen Wert von null gelesen, oder einen Sekundenzeitstempel als Millisekunden. Prüfen Sie, ob ein Feld leer ist und ob eine Multiplikation oder Division durch 1.000 fehlt.

Ist ein Unix-Zeitstempel in UTC?

Er zählt ab einem in UTC definierten Moment und beschreibt überall denselben Augenblick, in der Praxis also ja. Zur Ortszeit wird er erst, wenn Sie ihn zur Anzeige umwandeln.

Funktioniert mein Computer 2038 nicht mehr?

Aktuelle Betriebssysteme für Computer und Handys nutzen 64-Bit-Zeit und sind nicht betroffen. Das Risiko liegt bei älteren eingebetteten Geräten, Altsoftware und Datenformaten, die noch 32-Bit-Zeitstempel speichern.

Wie erhalte ich den aktuellen Unix-Zeitstempel?

In einem Terminal unter macOS oder Linux führen Sie date +%s aus. In JavaScript nutzen Sie Math.floor(Date.now() / 1000). Der Zeitstempel-Konverter zeigt ihn auch live.

Tools in diesem Artikel

Mehr aus dem Blog

Daten6 Min. Lesezeit

ZIP, 7z oder RAR: welches Archivformat ist das beste?

Wir haben dieselben Ordner mit Fotos, Videos, Dokumenten und Daten in ZIP-, 7z- und RAR-Archive gepackt und Größe und Geschwindigkeit gemessen. Der Gewinner hängt fast nur davon ab, was drin ist.

Daten6 Min. Lesezeit

CSV, Excel oder JSON: welches Format für Ihre Daten?

Wir haben dieselbe Tabelle mit 100.000 Zeilen als CSV, als Excel-Arbeitsmappe und als JSON gespeichert und dann die Größen verglichen, wie schnell sich jede im Code liest und was mit Datumsangaben, führenden Nullen und langen Zahlen schiefgeht.

Daten5 Min. Lesezeit

QR-Code-Fehlerkorrektur und Größe: L, M, Q und H getestet

Eine höhere Fehlerkorrektur lässt einen QR-Code Schäden überstehen, macht ihn aber auch dichter. Wir haben Codes für vier gängige Inhalte in jeder Stufe erzeugt und sie Stück für Stück abgedeckt, bis sie nicht mehr gelesen wurden.

Esc