Was ist ein Unix-Zeitstempel? Eine vollständige Erklärung der Epoch-Zeit
Schnelle Antwort
Ein Unix-Zeitstempel ist die Anzahl der Sekunden seit dem 1. Januar 1970, 00:00:00 UTC (der Unix-Epoche). Es ist zeitzonenunabhängig und leicht zu vergleichen. JavaScript verwendet Millisekunden (13 Ziffern); Unix und die meisten APIs verwenden Sekunden (10 Ziffern). Verwenden Sie unseren kostenlosen Zeitstempelkonverter, um zwischen Zeitstempeln und für Menschen lesbaren Daten zu konvertieren.
Einführung
Ein Unix-Zeitstempel (auch Unix-Epochenzeit, POSIX-Zeit oder Unix-Zeit genannt) ist die Anzahl der Sekunden, die seit dem 1. Januar 1970, 00:00:00 UTC – einem Zeitpunkt, der als Unix-Epoche bekannt ist – vergangen sind. Zeitstempel werden häufig in Betriebssystemen, Datenbanken, Protokollen und APIs verwendet, da sie zeitzonenunabhängig (immer UTC), leicht zu vergleichen (einfacher Ganzzahlvergleich) und kompakt sind. Sie sind jedoch nicht für Menschen lesbar – 1693526400 bedeutet ohne Konvertierung nichts. In diesem Leitfaden wird erklärt, was Zeitstempel sind und wie man sie verwendet.
Schritt für Schritt
-
Verstehen Sie die Unix-Epoche
Die Unix-Epoche ist der 1. Januar 1970, 00:00:00 koordinierte Weltzeit (UTC). Ein Unix-Zeitstempel ist die Anzahl der Sekunden ab diesem Zeitpunkt. Positive Zeitstempel stehen nach der Epoche; Negative Zeitstempel (von einigen Systemen unterstützt) stehen davor.
-
Unterscheiden Sie Sekunden von Millisekunden
Unix-Zeitstempel werden normalerweise in Sekunden angegeben (10 Ziffern ab 2026, z. B. 1693526400). Date.now() und Date.getTime() von JavaScript geben Millisekunden zurück (13 Ziffern, z. B. 1693526400000). Überprüfen Sie immer, welche Einheit ein API erwartet – das Mischen dieser Einheiten ist der häufigste Zeitstempelfehler.
-
Zeitzonenunabhängigkeit verstehen
Unix-Zeitstempel sind immer UTC. Sie sind nicht von der Zeitzone des Benutzers abhängig. Um einen Zeitstempel in einer bestimmten Zeitzone anzuzeigen, konvertieren Sie ihn in ein Datum und wenden Sie den Zeitzonenversatz an. Dies macht Zeitstempel ideal für die Speicherung und den Vergleich.
-
Erfahren Sie mehr über das Jahr-2038-Problem
Systeme, die 32-Bit-Ganzzahlen mit Vorzeichen für Zeitstempel verwenden, werden am 19. Januar 2038 um 03:14:07 UTC überlaufen – das „Y2038-Problem“. Systeme, die 64-Bit-Ganzzahlen oder JavaScript-Zahlen (64-Bit-Floats) verwenden, sind nicht betroffen. Moderne Systeme sind weitgehend Y2038-sicher, ältere eingebettete Systeme jedoch möglicherweise nicht.
Beispiele
Zeitstempel für ein bekanntes Datum
Eingang: 01.09.2023 00:00:00 UTC
Ausgabe: 1693526400 (Sekunden) oder 1693526400000 (Millisekunden)
Die Unix-Epoche
Eingang: 1970-01-01 00:00:00 UTC
Ausgabe: 0
Y2038 Problemgrenze
Eingang: 2038-01-19 03:14:07 UTC
Ausgabe: 2147483647 (max. 32-Bit-Ganzzahl mit Vorzeichen)
Häufige Probleme
- Mischen von Sekunden und Millisekunden – JavaScript verwendet Millisekunden (Date.now()), Unix und die meisten APIs verwenden Sekunden. Durch 1000 dividieren, um ms in Sekunden umzuwandeln; Für die Umkehrung mit 1000 multiplizieren.
- Zeitzonenverwirrung – Zeitstempel sind UTC. Konvertieren Sie bei der Anzeige die lokale Zeitzone des Benutzers oder geben Sie UTC an. Wenden Sie keine Offsets auf den Rohzeitstempel an.
- Das Problem des Jahres 2038 – 32-Bit-Integer-Zeitstempel mit Vorzeichen laufen am 19.01.2038 über. Um dies zu vermeiden, verwenden Sie 64-Bit-Ganzzahlen oder JavaScript-Zahlen.
- Negative Zeitstempel: Daten vor dem 01.01.1970 haben negative Zeitstempel. Einige Systeme unterstützen sie nicht.
Tipps
- Überprüfen Sie immer, ob ein API Sekunden oder Millisekunden erwartet – dies ist der häufigste Zeitstempelfehler.
- Verwenden Sie ISO 8601-Zeichenfolgen (z. B. „2023-09-01T00:00:00Z“) für menschenlesbare Zeitstempel in APIs; Verwenden Sie die Unix-Epoche für Speicherung und Berechnung.
- JavaScript Date.now() gibt Millisekunden zurück; Teilen Sie durch 1000 und Boden, um Sekunden zu erhalten.
- Verwenden Sie unseren Zeitstempelkonverter, um in Ihrem Browser zwischen Zeitstempeln und für Menschen lesbaren Daten zu konvertieren.