Wie Sie Unix-Timestamps konvertieren

· 5 Min. Lesezeit

Unix-Zeitstempel sind die Art und Weise, wie Computer Zeit speichern und kommunizieren: eine einzelne Zahl, die die Sekunden seit dem 1. Januar 1970 repräsentiert. Sie erscheinen in API-Antworten, Datenbankeinträgen, Logdateien und JWT-Tokens. Wenn Sie wissen müssen, welches Datum 1711824000 tatsächlich ist, brauchen Sie einen Konverter. Ein browserbasierter Konverter erledigt die Mathematik sofort und ermöglicht Ihnen, in beide Richtungen zu gehen (Zeitstempel zu Datum, Datum zu Zeitstempel).

So sieht ein Unix-Zeitstempel aus

ZeitstempelTypMenschlich lesbar
0Sekunden1. Jan 1970 00:00:00 UTC
1000000000Sekunden9. Sep 2001 01:46:40 UTC
1234567890Sekunden13. Feb 2009 23:31:30 UTC
1711824000Sekunden31. Mär 2024 00:00:00 UTC
1711824000000Millisekunden31. Mär 2024 00:00:00 UTC
2147483647Sekunden19. Jan 2038 03:14:07 UTC (32-Bit-signiert-Maximum)

Der Unterschied zwischen Sekunden und Millisekunden sind drei zusätzliche Nullen. Eine 10-stellige Zahl ist in Sekunden; 13 Stellen ist in Millisekunden. Ab 2024 sind alle sekundenbasierten Unix-Zeitstempel 10-stellig und werden bis November 2286 so bleiben.

So konvertieren Sie Zeitstempel

  1. Geben Sie einen Zeitstempel oder ein Datum ein: Fügen Sie einen Unix-Zeitstempel ein, um ihn in ein lesbares Datum umzuwandeln, oder geben Sie ein Datum ein, um den Zeitstempel zu erhalten.
  2. Überprüfen Sie das Format: Der Konverter erkennt automatisch Sekunden vs. Millisekunden basierend auf der Zahlenlänge.
  3. Lesen Sie das Ergebnis: Sehen Sie das Datum in Ihrer lokalen Zeitzone, UTC und im ISO 8601-Format.

Eine kurze Geschichte der Unix-Zeit

Die Unix-Zeit wurde erstmals im Unix Programmer's Manual definiert, das im November 1971 bei den Bell Labs veröffentlicht wurde. Die ursprüngliche Epoche war der 1. Januar 1971, aber sie wurde kurz darauf in den 1. Januar 1970 geändert und in POSIX.1 (1988) standardisiert.

Die Wahl von 1970 war willkürlich, aber praktisch: Unix wurde 1969-1971 entwickelt, und mit der Zählung in der Nähe der Geburt des Betriebssystems zu beginnen, schien vernünftig. Eine 32-Bit-signierte Ganzzahl, die Sekunden ab 1970 zählt, ergab einen Bereich von Dezember 1901 bis Januar 2038, was die Designer für ausreichend hielten.

Es ist nicht. Das «Jahr-2038-Problem» (auch Y2K38 genannt) ist der Moment, in dem 32-Bit-signierte Unix-Zeitstempel überlaufen: 2147483647 Sekunden nach der Epoche kippt das nächste Tick auf eine negative Zahl, die Systeme als Dezember 1901 interpretieren. Die meisten modernen Systeme sind in den 2000er und 2010er Jahren auf 64-Bit-Ganzzahl-Zeitstempel migriert, aber einige eingebettete Geräte, ältere Datenbanken und Legacy-Dateiformate verwenden immer noch 32-Bit-Zeit und werden vor 2038 Patches benötigen.

Die Unix-Zeit ist jetzt der De-facto-Standard für die Darstellung von Zeit in Computersystemen. JSON-APIs, Datenbankzeilen-Zeitstempel, JWT-Ablaufdaten, Blockchain-Blockzeiten, IoT-Sensorablesungen: Fast alle verwenden die Unix-Epoche direkt oder indirekt.

Sekunden, Millisekunden, Mikrosekunden, Nanosekunden

Verschiedene Systeme verwenden unterschiedliche Präzisionen:

Ein 19-stelliger Zeitstempel kann Konverter verwirren, die Millisekunden erwarten; überprüfen Sie die Quelldokumentation doppelt, wenn Sie anomale Zahlen sehen.

Wo Sie Zeitstempel begegnen

Zeitstempel im Code

Schnelle Konvertierung in gängigen Sprachen:

JavaScript:

new Date(1711824000 * 1000)            // Aus Sekunden (mit 1000 multiplizieren)
new Date(1711824000000)                // Aus Millisekunden
Math.floor(Date.now() / 1000)          // Aktuelle Zeit in Sekunden
Date.now()                             // Aktuelle Zeit in Millisekunden

Python:

from datetime import datetime, timezone
datetime.fromtimestamp(1711824000, tz=timezone.utc)
datetime.now(timezone.utc).timestamp()  # Aktuelle Zeit in Sekunden (float)

Bash:

date -u -d @1711824000                 # GNU date (Linux)
date -u -r 1711824000                  # BSD date (macOS)
date +%s                               # Aktuelle Zeit in Sekunden

SQL (PostgreSQL):

SELECT TO_TIMESTAMP(1711824000);       -- Epoch in Timestamp konvertieren
SELECT EXTRACT(EPOCH FROM NOW());      -- Aktuelle Epoche

Go:

time.Unix(1711824000, 0)               // Aus Sekunden
time.Now().Unix()                      // Aktuelle Zeit in Sekunden

Zeitzonen-Handhabung

Hier verstecken sich die meisten Zeitstempel-Bugs:

Beim Senden von Zeitstempeln in APIs verwenden Sie immer UTC-Sekunden. Beim Anzeigen für Benutzer konvertieren Sie in ihre lokale Zeitzone. Der Konverter handhabt beide Richtungen.

Häufige Fallstricke

Tipps

Datenschutz

Der Unix-Zeitstempel-Konverter läuft vollständig in Ihrem Browser. Die Zeitstempel und Daten, die Sie eingeben, verlassen Ihr Gerät nie. Das ist wichtig, weil Zeitstempel sensibel sein können: Sie können aus Logdateien stammen, die das Timing der internen Infrastruktur offenbaren, JWT-Tokens mit eingebetteten Benutzer-/Sitzungs-Informationen, internes API-Debugging, das nicht mit Dritten geteilt werden sollte. Cloud-Zeitstempel-Konverter können Eingaben zu «Verbesserungs»-Zwecken protokollieren; ein nur im Browser laufender Konverter hat keine Exposition.

Die browserbasierte Konvertierung funktioniert auch offline, sobald die Seite geladen ist, und ist schnell genug, dass Sie einen Zeitstempel in das Feld fallen lassen und das Datum im gleichen Moment sehen können.

Häufig gestellte Fragen

Was ist Unix-Epoch-Zeit?

Unix-Epoch-Zeit (auch POSIX-Zeit oder Unix-Timestamp genannt) ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 um 00:00:00 UTC vergangen sind. Es ist die Standardweise, wie Computer Zeit intern darstellen.

Was ist der Unterschied zwischen Sekunden- und Millisekunden-Timestamps?

Unix-Timestamps in Sekunden sind 10 Stellen lang (z. B. 1711824000). Millisekunden-Timestamps sind 13 Stellen lang (z. B. 1711824000000). JavaScript verwendet Millisekunden, die meisten APIs und Datenbanken Sekunden. Der Konverter erkennt die Längen automatisch.

Warum ist meine konvertierte Zeit um mehrere Stunden falsch?

Timestamps sind immer in UTC. Der Konverter zeigt sowohl UTC als auch Ihre Ortszeit. Stimmt das Ergebnis nicht mit Ihrer Erwartung überein, vergleichen Sie wahrscheinlich UTC-Ausgabe mit Ortszeit oder umgekehrt.

Was passiert 2038?

Systeme, die Unix-Timestamps als 32-Bit-Integer mit Vorzeichen speichern, laufen am 19. Januar 2038 über. Die meisten modernen Systeme nutzen 64-Bit-Integer, die den Bereich weit über jede praktische Sorge hinaus erweitern.