Unix-Timestamp-FAQ

Schnelle Antworten auf die häufigsten Fragen zu Unix-Timestamps — Einheiten, Zeitzonen-Handhabung, das Jahr-2038-Problem, sprachspezifische Umwandlungen und mehr.

Häufig gestellte Fragen

Was ist ein Unix-Timestamp?
Ein Unix-Timestamp ist die Anzahl der Sekunden, die seit der Unix-Epoch — dem 1. Januar 1970 um 00:00:00 UTC — vergangen sind. Es ist eine sprachneutrale, zeitzonenunabhängige Ganzzahl, die jeden Moment in der Zeit eindeutig identifiziert.
Was ist die Unix-Epoch?
Die Unix-Epoch ist der 1. Januar 1970 um 00:00:00 UTC. Alle Unix-Timestamps werden von diesem festen Bezugspunkt aus nach vorn — oder bei negativen Werten nach hinten — gemessen. Die Wahl von 1970 war praktisch: ein jüngstes, rundes Jahr, als Unix bei Bell Labs entworfen wurde.
Was ist der Unterschied zwischen einem 10- und einem 13-stelligen Timestamp?
Ein 10-stelliger Timestamp (z. B. 1700000000) steht für Sekunden seit der Epoch. Ein 13-stelliger (z. B. 1700000000000) steht für Millisekunden. Date.now() von JavaScript liefert Millisekunden; die meisten Unix-Systemaufrufe und Sprachen wie Python, Go und PHP liefern standardmäßig Sekunden.
Warum nutzt JavaScript Millisekunden statt Sekunden?
Die Date-API von JavaScript wurde entworfen, um der Auflösung der 1995 verfügbaren System-Timer zu entsprechen. Millisekunden vermeiden Präzisionsverlust für Dauern unter einer Sekunde. Wenn du mit serverseitig erzeugten Unix-Timestamps in Sekunden arbeitest, multipliziere mit 1000, bevor du sie an new Date() übergibst.
Wie wandle ich einen Unix-Timestamp in JavaScript in ein lesbares Datum um?
Für einen Sekunden-Timestamp: new Date(1700000000 * 1000).toISOString(). Für einen Millisekunden-Timestamp: new Date(1700000000000).toISOString(). Beide erzeugen ISO-8601-Strings wie '2023-11-15T06:13:20.000Z'. Nutze toLocaleString() mit einer timeZone-Option für lokalisierte Anzeige.
Sind Unix-Timestamps zeitzonenbewusst?
Nein. Ein Unix-Timestamp steht immer für einen einzigen Moment in UTC. Zeitzonen-Infos werden nur beim Formatieren des Timestamps zur Anzeige angewandt. Zwei Geräte in verschiedenen Zeitzonen erzeugen für denselben Augenblick denselben Unix-Timestamp.
Was ist das Jahr-2038-Problem?
Systeme, die Unix-Timestamps als vorzeichenbehaftete 32-Bit-Ganzzahlen speichern, können nur Werte bis 2.147.483.647 darstellen, was dem 19. Januar 2038 um 03:14:07 UTC entspricht. Danach läuft die Ganzzahl in eine große negative Zahl über. Moderne 64-Bit-Systeme sind nicht betroffen, aber eingebettete Systeme und Alt-Datenbanken können weiterhin gefährdet sein.
Was ist ein negativer Unix-Timestamp?
Ein negativer Unix-Timestamp steht für einen Moment vor der Unix-Epoch. Zum Beispiel ist -86400 der 31. Dezember 1969 um 00:00:00 UTC. Die meisten modernen Datums-APIs behandeln negative Timestamps korrekt, aber einige ältere Systeme und Datenbanken unterstützen sie nicht.
Wie bekomme ich einen Unix-Timestamp in Python?
Nutze import time; int(time.time()) für Sekunden. Für ein explizites UTC-datetime: import datetime; int(datetime.datetime.now(datetime.timezone.utc).timestamp()). Für Millisekunden: int(time.time() * 1000).
Wie präzise ist ein Unix-Timestamp?
Ein Standard-Unix-Timestamp hat Sekundengenauigkeit. Für Genauigkeit unter einer Sekunde sind Millisekunden-Timestamps (13 Stellen) in Web-APIs und JavaScript üblich. Manche Systeme nutzen Mikrosekunden (16 Stellen) oder Nanosekunden. Die passende Einheit hängt von der Präzision ab, die deine Anwendung wirklich braucht.