Unix-Zeitstempel erklärt
Epoch Time verstehen
Über Zeitstempel erfahrenEin Unix-Zeitstempel wie „1704067200“ bedeutet 1. Januar 2024, Mitternacht UTC. Diese einfache Zahl – Sekunden seit dem 1. Januar 1970 – ist die Art, wie Computer universell die Zeit darstellen. Das Verständnis von Unix-Zeitstempeln ist für Programmierung, Datenbanken und die Arbeit mit APIs unerlässlich.
Warum 1970?
Das Unix-Betriebssystem wurde Ende der 1960er Jahre bei Bell Labs entwickelt. Als die Entwickler einen beliebigen Startpunkt für die Zeitmessung brauchten:
- Der 1. Januar 1970 wurde als runde Zahl nahe der Systemerstellung gewählt
- Er ermöglichte 32-Bit-Ganzzahlen, Daten weit in die Zukunft abzudecken
- Der Start um Mitternacht UTC hielt es einfach und universell
Diese „Epoche“ wurde zum De-facto-Standard in der gesamten Informatik.
Zeitstempel umrechnen
Zeitstempel zu Datum
| Zeitstempel | Lesbar (UTC) |
|---|---|
| 0 | 1. Januar 1970 00:00:00 |
| 86400 | 2. Januar 1970 00:00:00 |
| 1000000000 | 9. September 2001 01:46:40 |
| 1234567890 | 13. Februar 2009 23:31:30 |
| 1704067200 | 1. Januar 2024 00:00:00 |
| 2000000000 | 18. Mai 2033 03:33:20 |
| 2147483647 | 19. Januar 2038 03:14:07 (32-Bit-Grenze) |
Nützliche Zeitintervalle
| Zeitraum | Sekunden |
|---|---|
| 1 Minute | 60 |
| 1 Stunde | 3.600 |
| 1 Tag | 86.400 |
| 1 Woche | 604.800 |
| 1 Jahr (ca.) | 31.536.000 |
Millisekunden-Zeitstempel
Viele Systeme verwenden Millisekunden statt Sekunden:
| Format | Beispiel (gleicher Zeitpunkt) | Verwendet von |
|---|---|---|
| Sekunden | 1704067200 | Unix, PHP, Python |
| Millisekunden | 1704067200000 | JavaScript, Java, JSON-APIs |
| Mikrosekunden | 1704067200000000 | Einige Datenbanken |
| Nanosekunden | 1704067200000000000 | Go, einige Systeme |
Zur Umrechnung: Millisekunden ÷ 1000 = Sekunden
Mit Zeitstempeln im Code arbeiten
JavaScript
// Aktueller Zeitstempel (Millisekunden)
Date.now(); // 1704067200000
// Zeitstempel zu Datum
new Date(1704067200 * 1000);
// Datum zu Zeitstempel
Math.floor(new Date('2024-01-01').getTime() / 1000);Python
import time, datetime
# Aktueller Zeitstempel
time.time() # 1704067200.0
# Zeitstempel zu Datetime
datetime.datetime.fromtimestamp(1704067200)
# Datetime zu Zeitstempel
datetime.datetime(2024, 1, 1).timestamp()SQL
-- MySQL: Aktueller Zeitstempel
SELECT UNIX_TIMESTAMP();
-- Zeitstempel zu Datum umwandeln
SELECT FROM_UNIXTIME(1704067200);
-- Datum zu Zeitstempel
SELECT UNIX_TIMESTAMP('2024-01-01');Vorteile von Unix-Zeitstempeln
- Zeitzonenneutral: Immer UTC, keine Sommerzeitprobleme
- Einfache Arithmetik: Sekunden addieren/subtrahieren für Zeitberechnungen
- Kompakte Speicherung: Einzelne Ganzzahl statt formatierter Zeichenkette
- Sortierung: Natürliche numerische Sortierung entspricht chronologischer Sortierung
- Universell: Funktioniert sprach- und systemübergreifend
Wann Zeitstempel vs. formatierte Daten verwenden
- Zeitstempel: Speicherung, Berechnungen, APIs, Datenbanken
- Formatierte Daten: Benutzeranzeige, Berichte, Protokolle
Fazit
Unix-Zeitstempel zählen Sekunden seit dem 1. Januar 1970 UTC. Dieses einfache System ermöglicht eine universelle Zeitdarstellung über Computer und Programmiersprachen hinweg. Denken Sie daran, dass einige Systeme Millisekunden (13 Stellen) statt Sekunden (10 Stellen) verwenden und dass 32-Bit-Systeme 2038 an eine Grenze stoßen. Für Speicherung und Berechnungen sind Zeitstempel ideal; für die Anzeige rechnen Sie in lesbare Formate um.