Was ist ein Unix-Zeitstempel?
Ein Unix-Zeitstempel ist die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC. Der Wert 1700000000 entspricht dem 14. November 2023.
Der praktische Vorteil ist die Eindeutigkeit: ein Zeitstempel bezeichnet weltweit denselben Zeitpunkt, unabhängig von Zeitzone, Sommerzeit oder Schreibweise des Datums. Genau deshalb speichern Systeme Zeitpunkte als Zeitstempel und rechnen erst bei der Anzeige in lokale Zeit um.
Zeitstempel erzeugen
In den meisten Sprachen genügt ein Aufruf. Wichtig ist nur die Einheit: JavaScript liefert Millisekunden, die übrigen hier meist Sekunden.
Date.now() // JavaScript, Millisekunden
Math.floor(Date.now() / 1000) // JavaScript, Sekunden
time.time() // Python, Sekunden als Float
time.Now().Unix() // Go, Sekunden
System.currentTimeMillis() // Java, Millisekunden
SELECT EXTRACT(EPOCH FROM NOW()) -- PostgreSQL
Die Verwechslung von Sekunden und Millisekunden ist der häufigste Fehler. Ein Zeitstempel in Sekunden hat derzeit zehn Stellen, einer in Millisekunden dreizehn - dieser Konverter erkennt die Einheit automatisch und zeigt sie an.
Formate und Genauigkeit
Neben Sekunden und Millisekunden sind Mikrosekunden (16 Stellen) und Nanosekunden (19 Stellen) im Umlauf, letztere etwa in Datenbanken und Tracing-Systemen.
Für die Ausgabe an Menschen und in APIs ist ISO 8601 der passende Standard: 2023-11-14T22:13:20Z ist eindeutig, sortierbar und in jeder Sprache parsbar. Das Z steht für UTC. Dieser Konverter gibt gleichzeitig UTC, ISO 8601, RFC 2822 und Ihre lokale Zeitzone aus.
Das Jahr-2038-Problem
In einer vorzeichenbehafteten 32-Bit-Ganzzahl läuft der Sekundenzähler am 19. Januar 2038 über. Systeme, die noch time_t mit 32 Bit verwenden, springen dann auf 1901 zurück. Alle gängigen 64-Bit-Plattformen sind nicht betroffen - relevant bleibt das Thema für eingebettete Systeme und alte Datenformate.