Unix-Zeitstempel-Konverter

Wandeln Sie einen Unix-Zeitstempel in ein lesbares Datum in jeder Zeitzone um und ein Datum zurück in Epoch.

Aktuelle Unix-Zeit
Wird ermittelt…
Eingabe

Was ein Unix-Zeitstempel ist

Ein Unix-Zeitstempel — auch Epoch-Zeit oder POSIX-Zeit genannt — ist eine einzelne Zahl, die zählt, wie viele Sekunden seit dem 1. Januar 1970 um 00:00:00 UTC vergangen sind, einem Moment, der als Unix-Epoch bekannt ist. Weil es eine einzige ganze Zahl ist, ohne Zeitzone, ohne Kalender und ohne Formatierung, greifen Computer immer dann darauf zurück, wenn ein Zeitpunkt gespeichert, sortiert, verglichen oder über ein Netzwerk verschickt werden muss. Das steckt hinter der Spalte „created_at“ in Ihrer Datenbank, hinter den Claims „iat“ und „exp“ in einem JWT, hinter der mtime einer Datei und hinter den Zeitstempeln in nahezu jeder Logdatei, die Sie je lesen werden.

Der Preis dafür ist, dass eine nackte Zahl einem Menschen nichts sagt. 1716197600 ist ein völlig gültiger Zeitpunkt, aber man sieht ihr nicht an, ob sie letzten Dienstag meint oder vor drei Jahren. Genau diese Übersetzung, in beide Richtungen, leistet dieses Werkzeug.

Sekunden oder Millisekunden — die Mehrdeutigkeit, die zubeißt

Die ursprüngliche Unix-Konvention zählt ganze Sekunden, und das liefern date +%s in der Shell, time() in PHP und time.time() in Python nach dem Abschneiden. JavaScript, Java und viele andere zählen stattdessen Millisekunden: Date.now() gibt eine tausendmal größere Zahl zurück. Beides heißt „Zeitstempel“, und beides zu verwechseln gehört zu den häufigsten Datumsfehlern überhaupt.

Der Fehler ist leise statt laut. Liest man einen Millisekundenwert als Sekunden, landet das Datum Zehntausende Jahre in der Zukunft; liest man einen Sekundenwert als Millisekunden, fällt alles auf Januar 1970 zusammen. Keiner der beiden Fälle wirft einen Fehler — man bekommt schlicht ein falsches Datum, das wie ein echtes aussieht.

Dieses Werkzeug rät anhand der Größenordnung der Zahl und sagt Ihnen dann, was es geraten hat, direkt neben dem Ergebnis. Heutige Epoch-Sekunden haben zehn Stellen und heutige Epoch-Millisekunden dreizehn, die Vermutung stimmt also fast immer — aber „fast“ genügt nicht für einen Wert, den Sie gleich in einen Fehlerbericht einfügen. Deshalb ist die Lesart immer sichtbar und immer nur einen Klick vom Umschalten entfernt.

Zeitzonen, UTC und warum „lokal“ glitschig ist

Ein Unix-Zeitstempel hat keine Zeitzone. Er bezeichnet einen Augenblick, und derselbe Augenblick ist gleichzeitig 09:33 in London, 11:33 in Jerusalem und 18:33 in Tokio. Eine Zeitzone ist nicht Teil des Werts; sie ist die Linse, durch die Sie ihn betrachten.

Deshalb zeigt dieses Werkzeug mehrere Linsen gleichzeitig. UTC ist die neutrale Referenz, auf die sich jeder Server und jedes Log einigen. Ihre Ortszeit ist das, was Ihr eigenes Gerät meldet, angezeigt mit dem Namen der Zone (etwa Europe/Berlin), damit Sie immer wissen, welche Linse sie erzeugt hat — die Erkennung passiert in Ihrem Browser, ein Besucher in Berlin sieht also Berliner Zeit und ein Besucher in Tokio die Zeit in Tokio. Die dritte Zeile ist eine beliebige Zone aus der vollständigen IANA-Zeitzonendatenbank — genau die Zeile, die Sie brauchen, wenn Sie ein Log von einem Server lesen, der anderswo steht.

  • UTC — die Referenz, auf die sich alle Systeme einigen, und das Richtige zum Speichern und Protokollieren.
  • Lokal — derselbe Augenblick, wie ihn Ihr Gerät sieht, beschriftet mit der erkannten Zone.
  • Eine Zone Ihrer Wahl — zum Lesen von Logs und Traces von Maschinen anderswo.
  • ISO 8601 — das Austauschformat als Text, z. B. 2024-05-20T09:33:20.000Z.
  • Relativ — „vor 3 Stunden“, für ein schnelles Gefühl dafür, wie aktuell etwas ist.

Die Abweichungen stehen neben jeder Zeit (+03:00, -04:00), weil sie nicht fest sind: Die meisten Zonen verschieben sich zur Sommerzeit um eine Stunde, dieselbe Zone kann also je nach Jahreszeit verschiedene Abweichungen ergeben. Ein Datum kurz vor oder nach einer Umstellung ist genau die Stelle, an der Kopfrechnen schiefgeht.

Mit Epoch-Zeit in der Praxis arbeiten

Jede Sprache und jede Shell hat ihren eigenen Weg, Epoch-Werte zu erzeugen und zu lesen. Diese lohnt es sich zu merken:

date +%s                         # Shell: aktuelle Zeit in Sekunden
date -d @1716197600              # Shell (GNU): von Sekunden zum Datum
Date.now()                       # JavaScript: aktuelle Zeit in MILLIsekunden
new Date(1716197600 * 1000)      # JavaScript: von Sekunden zu Date
time.time()                      # Python: Sekunden, als Fließkommazahl
datetime.fromtimestamp(1716197600, tz=timezone.utc)
SELECT EXTRACT(EPOCH FROM now()) -- PostgreSQL: Sekunden

Eine Faustregel, die den meisten Datumsärger vermeidet: Speichern und übertragen Sie Zeitpunkte als UTC — entweder als Epoch-Ganzzahl oder als ISO-8601-Zeichenkette — und rechnen Sie erst im letzten Moment in eine lokale Zone um, wenn Sie sie tatsächlich jemandem anzeigen. Zu frühes Formatieren ist der Weg, auf dem ein Zeitzonenfehler in Ihre Daten eingebacken wird, statt in der Anzeigeschicht zu bleiben.

Noch etwas Wissenswertes: Ein vorzeichenbehafteter 32-Bit-Sekundenzähler läuft am 19. Januar 2038 über — das „Jahr-2038-Problem“. Moderne Systeme verwenden 64-Bit-Werte und sind sicher, aber alte eingebettete Geräte und ältere Datenbankspalten sind genau die Orte, an denen Sie ihm noch begegnen können.

Häufig gestellte Fragen

Woher weiß es, ob meine Zahl Sekunden oder Millisekunden sind?
Aus ihrer Größenordnung: Werte unterhalb von etwa 1e11 werden als Sekunden gelesen, größere als Millisekunden. Heute trennt das zehnstellige Sekunden sauber von dreizehnstelligen Millisekunden. Die Lesart steht neben dem Ergebnis und lässt sich mit einem Klick umschalten — die Vermutung wird Ihnen also nie verheimlicht.
Welche Zeitzone gilt als „lokal“?
Die, die Ihr eigenes Gerät meldet, im Browser erkannt und mit Namen angezeigt, damit kein Zweifel bleibt. Es ist Ihre Zone, nicht die der Website: Wer aus Berlin kommt, sieht Berliner Zeit, wer aus Tokio kommt, die Zeit in Tokio.
Kann ich ein Datum zurück in einen Zeitstempel umwandeln?
Ja. Dasselbe Feld nimmt beide Richtungen an: Geben Sie eine Zahl ein und Sie bekommen ein Datum; geben Sie ein Datum wie 2024-05-20 oder 2024-05-20T09:33:20Z ein und Sie bekommen den Epoch-Wert zurück. Es gibt keinen Modus zum Umschalten.
Kommt es mit Daten vor 1970 zurecht?
Ja. Zeitstempel vor der Epoch sind einfach negativ — -86400 ist der 31. Dezember 1969 — und negative Werte werden ganz normal angenommen und umgerechnet.
Warum zeigt mein Zeitstempel ein anderes Datum als erwartet?
Fast immer aus einem von zwei Gründen: Die Sekunden-/Millisekunden-Lesart ist nicht die, die Sie angenommen haben (prüfen Sie die Beschriftung und schalten Sie um), oder Sie vergleichen einen UTC-Wert mit einer Erwartung in Ortszeit. Das Werkzeug zeigt beide Zeilen nebeneinander, damit Sie sehen, welcher Fall vorliegt.
Was ist das Jahr-2038-Problem?
Systeme, die Epoch-Sekunden in einer vorzeichenbehafteten 32-Bit-Ganzzahl speichern, laufen am 19. Januar 2038 über und springen auf eine negative Zahl, was Daten im Jahr 1901 ergibt. Alles, was 64-Bit-Werte verwendet — also nahezu alles Moderne — ist nicht betroffen, aber alte eingebettete Systeme und ältere Datenbankspalten können weiterhin gefährdet sein.
Wird der Zeitstempel, den ich eingebe, irgendwohin gesendet?
Nein. Auswerten, Umrechnen und Formatieren laufen vollständig in Ihrem Browser, gestützt auf die eigene Datums- und Zeitzonenunterstützung der Plattform. Nichts, was Sie eingeben, verlässt Ihr Gerät.