Glossary
Unix-Zeitstempel
Sekunden seit der Unix-Epoche
By Buğra SözeriPublished Updated
Ein Unix-Zeitstempel (oder POSIX-Zeit, oder Sekunden-seit-Epoche) ist die Anzahl der Sekunden, die seit dem 01.01.1970 00:00:00 UTC verstrichen sind, wobei Schaltsekunden ignoriert werden. Mit Stand 16.05.2026 beträgt der Unix-Zeitstempel etwa 1.779.000.000.
Warum dieses Format die Informatik dominiert:
- Es ist eine einzelne Ganzzahl. Keine eingebaute Zeitzonen-, Kalender-, Locale- oder Sommerzeit-Mehrdeutigkeit.
- Zeitarithmetik ist trivial — subtrahieren Sie zwei Zeitstempel, um eine Dauer in Sekunden zu erhalten.
- Als Zahlen sortierbar. Datenbankindizes und Zeitreihenabfragen brauchen keine ausgefeilten Vergleicher.
- Kompakt in der Speicherung und über die Leitung.
Drei Varianten, denen Sie begegnen werden:
- Sekunden. Das Original.
1700000000= 14. Nov. 2023, 22:13:20 UTC. - Millisekunden. JavaScripts
Date.now()liefert dies. Multiplizieren Sie den Sekundenwert mit 1000. - Mikrosekunden / Nanosekunden. Hochauflösende Telemetrie, verteilte Traces. Postgres’
timestamptzspeichert Mikrosekunden.
Zwei bekannte Probleme:
- Jahr 2038 (Y2K38). Eine vorzeichenbehaftete 32-Bit-Ganzzahl von Sekunden läuft am 19.01.2038 um 03:14:07 UTC über. Moderne Systeme nutzen 64 Bit (gut für ~292 Milliarden Jahre); ältere eingebettete Systeme möglicherweise nicht.
- Schaltsekunden. UTC fügt gelegentlich Schaltsekunden ein, um mit der Erdrotation synchron zu bleiben. Die Unix-Zeit ignoriert sie — der Zeitstempel im Moment der Schaltsekunde ist mehrdeutig. Die meisten Produktionssysteme nutzen ein Smearing (Google, AWS), das die Schaltsekunde über Stunden verteilt.
Wandeln Sie Unix-Zeitstempel in lesbare Daten um (und zurück), indem Sie sie in eine Datumsbibliothek einspeisen. Die Umwandlung in eine Wanduhrzeit erfordert immer eine Zeitzonenwahl — derselbe Moment ist „15 Uhr in NYC“ und „Mitternacht in Tokio“, je nachdem, in welcher Zone Sie ihn anzeigen. Siehe unseren Zeitzonen-Konverter.
Wie Betriebssysteme von 32-Bit-time_t migrieren: Linux brachte 2020 (Kernel 5.6+) 64-Bit-time_t als Standard-Kernel-ABI, und glibc 2.32 (2020) machte es dem Userspace zugänglich. NetBSD vollzog den Wechsel 2012, OpenBSD 2014. FreeBSD folgte 2024. Die verbleibenden Nachzügler sind eingebettete Systeme mit festgepinnten älteren Kerneln, bestimmte On-Chain-Protokolle, die 32-Bit-Zeitstempel in ihrem Wire-Format fest verdrahtet haben (Bitcoins Blockheader enthält einen 32-Bit-Unix-Zeitstempel, problematisch um 2106, wenn ein vorzeichenloser Überlauf einträte), und ältere Dateiformate (ZIP-Archive nutzen 32-Bit-DOS-Zeitstempel mit einer 1980er-Epoche; tar nutzt 32-Bit-Unix-Zeitstempel). Die mühsame Arbeit besteht darin, diese zu finden und zu beheben; die Kernel-Seite ist weitgehend erledigt. Quelle: POSIX.1-2017 §4.16 — Seconds Since the Epoch.
Durchgerechnetes Beispiel
Wandeln Sie 1700000000 in ein menschenlesbares UTC-Datum um. Teilen und runden Sie von Sekunden herunter: 1.700.000.000 / 86400 = 19.675,93 Tage seit dem 01.01.1970. Tag 19.675 ist der 14.11.2023 (Kalenderarithmetik). Der Bruchteil 0,93 eines Tages × 86.400 = 80.000 Sekunden = 22:13:20. Also 1700000000 = 2023-11-14T22:13:20Z. Überprüfen Sie es in JavaScript: new Date(1700000000 * 1000).toISOString() → "2023-11-14T22:13:20.000Z". Zur Anzeige in Tokio (UTC+9): 9 Stunden hinzufügen = 2023-11-15T07:13:20+09:00. Derselbe Moment, andere Wanduhrzeit. Der klassische Fehler: new Date().getTime() (Millisekunden) in einer Spalte zu speichern, die der Rest der Codebasis als Sekunden behandelt — jeder Zeitstempel liest sich dann bei der Anzeige als Jahr 55.000+.
Wann und warum es zählt
Immer wenn zwei Systeme Zeitdaten austauschen — Frontend zu Backend, Datenbank zu ETL-Pipeline, Microservice zu Microservice — sind Unix-Zeitstempel die einzige Darstellung, die keine Zeitzonen-, Locale-, Kalender- oder Sommerzeit-Mehrdeutigkeit mit sich trägt. Speichern Sie Zeitstempel als Unix-Sekunden oder -Millisekunden in einer 64-Bit-Spalte und formatieren Sie sie nur am Rand zur menschlichen Anzeige mit expliziter Zeitzone in ISO-8601. Die defensive Gewohnheit: Kodieren Sie in jedem Spalten- oder API-Feldnamen, der Zeit trägt, die Einheit (created_at_ms, expires_at_unix_seconds), damit ein Code-Reviewer die Größenordnung nicht verwechseln kann. Das Y2038-Risiko ist für neue Systeme gering, aber real für jeden 32-Bit-Zeitstempel in Protokoll-Wire-Formaten und eingebetteten Sensoren — prüfen Sie diese jetzt, solange noch 12 Jahre Vorlauf bleiben, nicht 2037, wenn Patches dringend werden. Quelle: RFC 3339 — Date and Time on the Internet.
Rechner ausprobieren
Wandeln Sie jeden Unix-Zeitstempel in ein menschenlesbares Datum in Ihrer lokalen Zeitzone oder UTC um.
Unix-Zeitstempel-Konverter öffnen →Frequently asked questions
- Was ist ein Unix-Zeitstempel?
- Ein Unix-Zeitstempel ist eine Ganzzahl, die die seit dem 01.01.1970 00:00:00 UTC (der Unix-Epoche) verstrichenen Sekunden zählt. Es ist die Standardweise, wie Computer Zeitpunkte speichern und austauschen -- unabhängig von Zeitzonen oder Kalendersystemen.
- Wie wird ein Unix-Zeitstempel in der Praxis verwendet?
- JWT-Ablaufangaben (exp), HTTP-Cache-Header (Last-Modified), Änderungszeiten im Dateisystem und Datenbank-Ereignisprotokolle nutzen alle Unix-Zeitstempel. Der Vergleich zweier Zeitstempel zur Bestimmung einer Dauer ist bloße Subtraktion; es ist keine Kalenderarithmetik nötig.
- Was ist der Unterschied zwischen einem Unix-Zeitstempel und einem ISO-8601-Datums-String?
- Ein Unix-Zeitstempel ist eine einzelne Ganzzahl (Sekunden seit der Epoche), kompakt und arithmetisch trivial zu vergleichen. Ein ISO-8601-String (z. B. 2026-06-01T12:00:00Z) ist menschenlesbar und selbstbeschreibend, erfordert aber Parsing und Zeitzonenbehandlung. Zeitstempel werden zur Speicherung bevorzugt; ISO-Strings zur Anzeige.
Related
Published May 16, 2026 · Last reviewed May 31, 2026