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.