Der Epoch-Timestamp erklärt: Unix-Zeit, POSIX-Zeit und Sekunden seit 1970
Ein Epoch-Timestamp ist eine kompakte Art, einen Moment als verstrichene Zeit seit einem festen Startpunkt darzustellen. Dieser Guide erklärt Unix-Zeit, POSIX-Timestamps, das Unix-Epoch-Datum und warum Sekunden seit 1970 UTC zum Standard in Software wurden.
Was ist ein Epoch-Timestamp?
Ein Epoch-Timestamp ist ein numerischer Zähler, gemessen ab einem festen Bezugsmoment namens Epoch. Im täglichen Entwicklergebrauch meint Epoch-Timestamp meist Unix-Timestamp: die Anzahl der Sekunden seit dem 1. Januar 1970 um 00:00:00 UTC. Der Wert 0 ist genau die Unix-Epoch. Positive Werte liegen nach 1970, negative davor.
Unix-Zeit vs. POSIX-Timestamp
Unix-Zeit und POSIX-Timestamp werden im Anwendungscode meist gleichbedeutend verwendet. Beide bezeichnen die seit der Unix-Epoch verstrichenen Sekunden und ignorieren Schaltsekunden zur Vereinfachung der bürgerlichen Zeit. Praktisch ergibt das eine stabile Ganzzahl, die über Betriebssysteme, Sprachen, Datenbanken, APIs und Logdateien hinweg funktioniert.
- Unix-Epoch-Datum: 1970-01-01 00:00:00 UTC
- Unix-Timestamp 0: der exakte Beginn der Unix-Epoch
- POSIX-Timestamp: Sekunden seit der Unix-Epoch auf POSIX-kompatiblen Systemen
- Epoch-Millisekunden: dieselbe Epoch, aber in Millisekunden gezählt
- Epoch-Mikro- oder -Nanosekunden: höhere Präzision für Datenbanken und Tracing
Warum der Timestamp seit 1970 zum Standard wurde
Die Unix-Epoch war für frühe Unix-Systeme praktisch und wurde zur Konvention, als sich Unix-Ideen in C-Bibliotheken, Linux, Datenbanken, Webserver und Programmiersprachen verbreiteten. Ein einzelner numerischer Timestamp lässt sich leichter sortieren, vergleichen, übertragen und speichern als ein lokalisierter Datumsstring.
Beispiele für Epoch-Timestamps
Ein paar bekannte Werte erleichtern das Merken der Definition.
- 0 = 1970-01-01 00:00:00 UTC
- 1 = 1970-01-01 00:00:01 UTC
- 86400 = 1970-01-02 00:00:00 UTC
- 1700000000 = 2023-11-14 22:13:20 UTC
- 1767225600 = 2026-01-01 00:00:00 UTC
FAQ zum Epoch-Timestamp
- Ist Epoch-Zeit dasselbe wie Unix-Zeit?
- Im üblichen Entwicklergebrauch ja. Epoch-Zeit meint meist Unix-Zeit: verstrichene Sekunden seit 1970-01-01 00:00:00 UTC.
- Wie ist Unix-Zeit definiert?
- Unix-Zeit ist definiert als Sekunden seit 1970-01-01 00:00:00 UTC, ohne Schaltsekunden.
- Ist ein POSIX-Timestamp zeitzonenbewusst?
- Nein. Ein POSIX-Timestamp steht für einen Moment. Zeitzonen werden erst angewandt, wenn dieser Moment als lesbares Datum formatiert wird.
- Sind Epoch-Timestamps unter Windows, Linux und macOS gleich?
- Die Unix-Epoch (1970-01-01 00:00:00 UTC) ist über moderne Plattformen und Sprachen identisch, derselbe Moment ergibt also überall denselben Unix-Timestamp. Windows nutzt intern seine eigene FILETIME-Epoch (1601), aber Standard-Unix- und POSIX-Timestamps nutzen 1970.