Skip to main content

Timestamp zu Datum

Wandeln Sie einen Zeitstempel in ein lesbares Datum um. Unterstützt Sekunden, Millisekunden und Nanosekunden.

2038 springt eine 32-Bit-Uhr nicht auf 1970 zurück — sie landet in 1901

Ein vorzeichenbehafteter 32-Bit-Zeitstempel endet bei 2.147.483.647 Sekunden, also am 19. Januar 2038 um 03:14:07 UTC. Die nächste Sekunde springt nicht auf null. Sie springt auf den kleinsten Wert, den der Typ fassen kann, und stellt die Uhr auf den 13. Dezember 1901 — ein so scheiterndes System springt 137 Jahre zurück.

So wird gerechnet

  • Wandelt einen Unix-Zeitstempel in ein lesbares Datum und zurück, in UTC und Ortszeit.
  • Erkennt, ob die Eingabe in Sekunden oder Millisekunden vorliegt — der häufigste Fehler.
  • Behandelt negative Zeitstempel, die gültig sind und Daten vor 1970 darstellen.
Zeitstempel = Sekunden seit 1970-01-01 00:00:00 UTC

32-Bit-Maximum mit Vorzeichen = 2.147.483.647 → 2038-01-19 03:14:07 UTC
  die nächste Sekunde springt auf −2.147.483.648 → 1901-12-13 20:45:52 UTC

64-Bit-Maximum mit Vorzeichen ≈ 9,223 × 10¹⁸ Sekunden — rund 292 Milliarden Jahre

Rechenbeispiel

Derselbe zehnstellige Wert zweifach gelesen, dazu die Grenze, an der 32-Bit-Zeit endet.

  1. 1770000000 als Sekunden gelesen → 2026-02-02
  2. 1770000000 als Millisekunden gelesen → 1970-01-21
  3. 10 Stellen bedeuten Sekunden, 13 Stellen Millisekunden
  4. 2147483647 → 2038-01-19 03:14:07 UTC
  5. eine Sekunde später → 1901-12-13 20:45:52 UTC

Gefährlich ist der Einheitenfehler, weil er lautlos scheitert. Millisekunden als Sekunden zu lesen wirft Sie ins Jahr 58.000 und fällt sofort auf; Sekunden als Millisekunden zu lesen landet im Januar 1970, was nach einem plausiblen Datum aussieht und die Durchsicht übersteht.

Das Ergebnis lesen

  • Ein Datum vom 1. Januar 1970 in Produktion heißt fast immer, dass ein Null- oder Nullwert den Formatierer erreicht hat statt eines echten Zeitstempels. Die Epoche ist der Standardwert einer nicht initialisierten Ganzzahl, weshalb dieses Datum in Fehlermeldungen so oft auftaucht.
  • Negative Zeitstempel sind völlig gültig und stellen Daten vor 1970 dar — −86.400 ist der 31. Dezember 1969. Systeme, die sie ablehnen, können keine historischen Daten speichern; das ist eine echte Einschränkung und keine Schutzmaßnahme.
  • Der Zeitstempel selbst trägt keine Zeitzone, er ist eine absolute Sekundenzahl. Die Zone kommt erst beim Formatieren ins Spiel, weshalb derselbe Wert bei zwei Nutzenden als zwei verschiedene Kalenderdaten erscheint und weshalb Ortszeit statt Zeitstempel zu speichern so viel Ärger macht.
  • Unix-Zeit ignoriert Schaltsekunden definitionsgemäß und wiederholt oder dehnt eine Sekunde, statt sie zu zählen. Sie ist damit keine echte Zählung verstrichener SI-Sekunden, was für präzise Intervallmessung zählt und für fast alles andere nicht.

Häufige Fragen

Warum zeigt mein Datum 1970 an?
Weil der Wert, der den Formatierer erreichte, null oder ein Nullwert war, und null ist die Epoche. Es ist selten ein Formatierungsfehler — der Zeitstempel wurde nie gesetzt oder ging weiter oben verloren, und der 1. Januar 1970 ist genau das, wie eine nicht gesetzte Ganzzahl gerendert aussieht.
Wie unterscheide ich Sekunden von Millisekunden?
Zählen Sie die Stellen. Aktuelle Zeitstempel haben 10 Stellen in Sekunden und 13 in Millisekunden. Sekunden als Millisekunden zu behandeln ist der Fehler, gegen den es sich zu sichern lohnt, denn er erzeugt ein Datum Anfang 1970, das echt statt offensichtlich absurd aussieht.

Leitfaden zur Unix-Zeit

Die Unix-Zeit (Epoch-Zeit) ist ein System zur Speicherung von Datum und Uhrzeit als Anzahl der Sekunden oder Millisekunden, die seit Mitternacht des 1. Januar 1970 (UTC) vergangen sind. Dieser Standard ist in Programmierung, Datenbanken und Netzwerkprotokollen weit verbreitet, weil er einfach ist und Datumsvergleiche erleichtert. Der Wert 0 entspricht genau diesem Datum, jede weitere Sekunde erhöht den Zähler um 1.

Verschiedene Timestamp-Formate

Das gängigste Format ist Unix in Sekunden (z. B. 1704067200), verwendet in Linux- und PHP-Systemen. Das zweite verbreitete Format ist Unix in Millisekunden (z. B. 1704067200000), verwendet in JavaScript und der JVM. Das dritte ist in Nanosekunden (z. B. 1704067200000000) und kommt in Systemen mit extremen Präzisionsanforderungen zum Einsatz, etwa in Datenbanken oder Finanzsystemen.

Jahr-2038-Problem

Das traditionelle Unix-Format hat auf 32-Bit-Systemen eine Obergrenze von 2.147.483.647 Sekunden, was dem 19. Januar 2038 entspricht. Nach diesem Datum kippt der Wert ins Negative. Moderne Systeme lösen das mit 64-Bit-Zahlen, die für sehr lange Zeit ausreichen. Neue Anwendungen sollten Millisekunden oder Nanosekunden verwenden, um Kompatibilitätsprobleme zu vermeiden.

Zeitzonen

Der Unix-Timestamp ist immer in UTC angegeben, enthält also keine Zeitzoneninformation. Um das Datum lokal anzuzeigen, addiert das System den Zeitzonen-Offset. Derselbe Timestamp-Wert wird in Polen beispielsweise ein bis zwei Stunden früher angezeigt als in den USA (je nach Sommerzeit). Das macht den Timestamp ideal zum Speichern und Übertragen von Datumsangaben über Zeitzonen hinweg.