Timestamp 0: Der Beginn der Unix Zeit
Der Unix Timestamp 0 ist der 1. Januar 1970 um 00:00:00 UTC. Jeder Unix Timestamp ist die Anzahl der seit diesem Moment vergangenen Sekunden. Der Timestamp 1 ist eine Sekunde später. Der Timestamp 86400 ist genau einen Tag später, der 2. Januar 1970.
# Überprüfe in einem Terminal
date -d @0 # Linux
date -r 0 # macOS
# Beide zeigen: Thu Jan 1 00:00:00 UTC 1970
Das Epoch selbst hat kein besonderes Verhalten. Es ist nur Null. Aber es zu verstehen, erklärt jeden Timestamp, den du in Logs, Datenbanken, APIs und Debugging Sitzungen findest.
Wie das Epoch Gewählt Wurde
Unix wurde ab 1969 in den Bell Labs entwickelt. Die ursprüngliche PDP-7 Implementierung von 1969 verwendete eine andere Zeitbasis; das Timestamp Format stabilisierte sich etwa 1971 bis 1973, als Unix auf die PDP-11 portiert wurde.
Die Wahl des 1. Januar 1970 war pragmatisch statt prinzipienbasiert:
- Es lag nahe am aktuellen Datum während der Entwicklung und maximierte den nutzbaren Bereich positiver Timestamps.
- Auf einem 32-Bit System ergab eine vorzeichenbehaftete Ganzzahl etwa 68 Jahre positive Werte (2^31 Sekunden ca. 68,05 Jahre). Ab 1970 reicht dieser Bereich bis 2038. Das war 1971 mehr als genug für die absehbare Zukunft.
- Eine Kalenderdatumsgrenze (1. Januar) um Mitternacht UTC war ein natürlicher, klarer Startpunkt ohne Off-by-One Mehrdeutigkeit.
Andere frühe Systeme trafen andere Entscheidungen. MULTICS (ein Vorgänger von Unix) verwendete ein anderes Epoch. Windows NT wählte den 1. Januar 1601, weil es der Beginn eines 400-Jahres-Zyklus des gregorianischen Kalenders ist. Es gibt keinen universellen Standard. Unix wurde nur dominant genug, dass sein Epoch ebenfalls dominant wurde.
Negative Timestamps: Vor 1970
Ein Timestamp von -86400 ist der 31. Dezember 1969 um 00:00:00 UTC. Weiter zurück, -2208988800 ist der 1. Januar 1900, das von NTP (Network Time Protocol) verwendete Epoch.
Du stößt auf negative Timestamps, wenn du mit Geburtsdaten, historischen Datenarchiven oder Datenbanken arbeitest, die vor 1970 zurückreichen. Teste deine Tools und Bibliotheken mit negativen Werten, bevor du dich darauf verlässt.
Konvertiere Unix Timestamps mühelos mit dem Unix Timestamp Konverter.