Unix-Zeitstempel-Konverter

Zeitstempel in Datum und zurück — die Einheit wird erkannt und benannt.

Leer lassen, um die aktuelle Zeit zu sehen. Eine bloße Zahl wird als Unix-Zeitstempel gelesen.

Die Stellen zählen

Das einzig wirklich Knifflige beim Lesen eines Zeitstempels ist, seine Einheit zu bestimmen, und die Größenordnung entscheidet das. In der Praxis gibt es keine Mehrdeutigkeit, weil sich die Bereiche für kein Datum überlappen, mit dem tatsächlich jemand arbeitet.

StellenEinheitBeispielWoher es stammt
10Sekunden1787788800Unix, PHP, die meisten APIs, JWT-Claims
13Millisekunden1787788800000JavaScript, Java, Kafka
16Mikrosekunden1787788800000000Pythons time_ns()/1000, Postgres-Interna
19Nanosekunden1787788800000000000Go, InfluxDB, Prometheus

Sich zu irren bedeutet den Faktor tausend, das Ergebnis landet also entweder in den frühen 1970ern oder Zehntausende Jahre in der Zukunft. Offensichtlich, wenn man hinsieht; völlig unsichtbar, wenn es eine Spalte in einer Logtabelle ist — und genau dort beißt es.

Was Unix-Zeit tatsächlich zählt

Sekunden seit 00:00:00 UTC am 1. Januar 1970, unter der Annahme, dass jeder Tag genau 86.400 Sekunden lang ist.

Diese Annahme ist falsch. Alle paar Jahre werden Schaltsekunden eingefügt, damit die Atomzeit zur Erdrotation passt, die sich allmählich verlangsamt. Unix-Zeit bildet sie nicht ab — Systeme wiederholen eine Sekunde oder verteilen sie über einen Tag, damit die Zählung gleichmäßig bleibt.

Die Folge ist, dass Unix-Zeit keine echte Zählung der seit 1970 verstrichenen Sekunden ist; sie liegt rund siebenundzwanzig Sekunden zurück. Für Planung, Protokollierung und Ablauffristen ist das genau der richtige Kompromiss, denn gleichmäßige Arithmetik zählt mehr als astronomische Genauigkeit. Für alles, was wirklich verstrichene Dauer misst, nehmen Sie eine monotone Uhr — die Wanduhr kann außerdem zurückspringen, wenn NTP sie korrigiert.

Das Jahr-2038-Problem

Eine vorzeichenbehaftete 32-Bit-Ganzzahl fasst bis 2.147.483.647, als Unix-Zeitstempel also 03:14:07 UTC am 19. Januar 2038. Eine Sekunde später läuft sie ins Negative über, und das Datum wird Dezember 1901.

Alles Moderne nutzt 64 Bit und reicht für rund 292 Milliarden Jahre. Nicht modern sind: eingebettete Firmware, industrielle Steuerungen, manche älteren Datenbankspaltentypen und C-Code, der noch von einem 32-Bit-time_t ausgeht. Am stärksten gefährdet sind die Systeme, die niemand ansieht — genau das machte auch Y2K teuer.

Welches Format man tatsächlich nehmen sollte

ISO 8601 in UTC, für alles, was eine Grenze zwischen Systemen überschreitet oder von einem Menschen gelesen wird:

2026-08-27T14:30:00Z

Es ist eindeutig, sortiert als schlichte Zeichenkette korrekt und ist um zwei Uhr nachts in einem Log lesbar. Das Z zählt: Ohne es nehmen die meisten Parser Ortszeit an, und Sie haben einen Fehler erfunden, der sich nur bei Nutzern in anderen Ländern zeigt.

Unix-Sekunden sind intern in Ordnung — die Claims exp und iat in JWTs nutzen sie, und Ganzzahlvergleiche sind billig. Der Preis: Sie sind unleserlich und laden zur oben beschriebenen Einheitenverwechslung ein.

Zu vermeiden: jedes Format mit Offset, aber ohne Zonenkennung (+01:00 sagt Ihnen nicht, ob das BST oder CET ist, was bei künftigen Daten zählt), und alles aus dem Bereich 03/04/2026, was je nach Seite des Atlantiks zwei verschiedene Tage bedeutet.

Künftige Ereignisse speichern

Eine Feinheit, über die man stolpert. Für eine Besprechung um 09:00 im kommenden März ist UTC zu speichern falsch — ändern sich bis dahin die Zeitzonenregeln, und Regierungen ändern sie, verschiebt sich der Termin. Künftige lokale Ereignisse gehören als Ortszeit plus Zonenkennung (Europe/London) gespeichert und bei der Anzeige nach den dann geltenden Regeln umgerechnet. Bei vergangenen Ereignissen ist es umgekehrt: UTC, denn was geschehen ist, steht fest.

Verwandt

Die Claims exp und iat in JWTs sind Unix-Sekunden — der JWT-Decoder rechnet sie für Sie um und markiert den Ablauf. Wenn es ums Planen statt ums Umrechnen geht, zeigt der Cron-Parser, wann ein Zeitplan das nächste Mal auslöst.

Fragen zu Zeitstempeln

Ist mein Zeitstempel in Sekunden oder Millisekunden?

Zählen Sie die Stellen. Ein aktueller Zeitstempel in Sekunden hat 10 Stellen und behält sie bis November 2286; in Millisekunden sind es 13. Sechzehn Stellen sind Mikrosekunden, neunzehn Nanosekunden. Wer sich vertut, liegt um den Faktor tausend daneben und landet entweder kurz nach 1970 oder irgendwo im Jahr 56000 — offensichtlich, wenn man hinsieht, unsichtbar in einem Logfile. Der Umrechner nennt die angenommene Einheit und lässt Sie sie überschreiben.

Was ist das Jahr-2038-Problem?

Systeme, die Unix-Zeit in einer vorzeichenbehafteten 32-Bit-Ganzzahl ablegen, laufen am 19. Januar 2038 über und springen zurück in den Dezember 1901. Alles Moderne nutzt 64 Bit und ist damit für rund 292 Milliarden Jahre gerüstet. Nicht gerüstet sind eingebettete Firmware, ältere Datenbanken, manche Dateisystemformate und jeder C-Code, der noch ein 32-Bit-time_t verwendet. Es ist dieselbe Art Problem wie Y2K und wird, wie Y2K, größtenteils im Voraus von Leuten still erledigt, von denen Sie nie hören.

Warum ignorieren Zeitstempel Schaltsekunden?

Weil Unix-Zeit als Anzahl der Sekunden seit der Epoche definiert ist, unter der Annahme, jeder Tag habe genau 86.400 Sekunden — was nicht stimmt, denn gelegentlich werden Schaltsekunden eingefügt, damit die Uhren zur Erdrotation passen. Statt sie abzubilden, wiederholen oder „verschmieren“ die meisten Systeme eine Sekunde, damit die Zählung glatt bleibt. Unix-Zeit ist damit keine echte Zählung verstrichener Sekunden — und für nahezu jeden Zweck ist das der richtige Kompromiss.

Welches Format sollte ich in einer API verwenden?

ISO 8601 in UTC, mit dem Suffix Z: 2026-08-27T14:30:00Z. Es ist eindeutig, sortiert als Zeichenkette korrekt und ist für einen Menschen lesbar, der um zwei Uhr nachts ein Log durchsieht. Unix-Sekunden sind intern in Ordnung und werden in JWT-Claims verwendet, sind aber schwer zu lesen und laden zur oben beschriebenen Sekunden-Millisekunden-Verwechslung ein. Zu vermeiden ist jedes Format mit lokalem Offset ohne Zone und alles, was in den Bereich TT/MM gegen MM/TT fällt.

Warum zeigt mein Datum einen anderen Tag als erwartet?

Fast immer eine Zeitzonengrenze. Eine ISO-Zeichenkette ohne Zone deuten die meisten Parser als Ortszeit, eine mit Z am Ende als UTC — ein Zeitstempel vom späten Abend in London liegt in UTC also schon am Folgetag, einer vom frühen Morgen in Los Angeles noch am Vortag. Speichern und übertragen Sie in UTC und rechnen Sie erst bei der Anzeige um.

Zuletzt geprüft . Etwas veraltet gefunden? Sagen Sie uns Bescheid.