RunToolz iconRunToolz
Welcome to RunToolz!
ZeitstempelProgrammierungDatenbanken

Was ist ein Unix-Timestamp und warum sollte es dich interessieren?

Diese riesige Zahl in deiner Datenbank ist nicht zufällig. Hier erfährst du, was sie bedeutet und wie du damit arbeitest.

RunToolz Team12. Januar 20263 min read

Du debuggst eine API-Antwort. Es gibt ein Feld namens created_at mit dem Wert 1704067200. Welcher Tag ist das?

Das ist ein Unix-Timestamp. Es ist die Anzahl der Sekunden seit dem 1. Januar 1970. Und sobald du es verstehst, wirst du es überall sehen.

Warum 1970?

Unix wurde Ende der 1960er entwickelt. Die Designer brauchten einen Startpunkt für Zeitberechnungen. Der 1. Januar 1970 war aktuell genug, um praktisch zu sein, früh genug, um die meiste Computing-Geschichte abzudecken.

Dieser Moment – Mitternacht UTC am 1. Januar 1970 – wird Unix-Epoch genannt.

Möchten Sie es selbst ausprobieren?Timestamp konvertieren

Warum Sekunden statt Daten?

Daten sind kompliziert. Zeitzonen, Sommerzeit, Schaltjahre, variierende Monatslängen. „15. März 2024 um 15 Uhr EST" erfordert viel Parsing.

Ein Timestamp ist nur eine Zahl. 1710522000. Einfach zu speichern, einfach zu vergleichen, einfach damit zu rechnen.

Willst du wissen, welches Event zuerst passierte? Vergleiche zwei Zahlen. Willst du wissen, wie lange etwas dauerte? Subtrahiere Timestamps. Willst du 24 Stunden hinzufügen? Addiere 86400.

Der Zeitzonen-Vorteil

Hier ist der clevere Teil: Timestamps sind immer UTC.

Wenn jemand in Tokio und jemand in New York beide denselben Moment aufzeichnen, bekommen sie denselben Timestamp. Die Anzeige könnte unterschiedlich sein – einer sieht 9 Uhr morgens, der andere 19 Uhr – aber die zugrundeliegende Zahl ist identisch.

Das macht verteilte Systeme möglich. Datenbanken, APIs, Logdateien – alle verwenden denselben Referenzpunkt, egal wo die Server sind.

Millisekunden vs. Sekunden

JavaScript verwendet Millisekunden seit Epoch. Die meisten anderen Sprachen verwenden Sekunden.

1704067200 (Sekunden) = 1. Januar 2024, 00:00:00 UTC 1704067200000 (Millisekunden) = Derselbe Moment

Wenn ein Timestamp viel zu groß aussieht, sind es wahrscheinlich Millisekunden. Teile durch 1000.

Timestamps schnell lesen

Ein paar Referenzpunkte zur Kalibrierung deiner Kopfrechnung:

  • 1000000000 (1 Milliarde) = 9. September 2001
  • 1600000000 = September 2020
  • 1700000000 = November 2023
  • 1800000000 = Januar 2027

Aktuelle Timestamps sind im 1,7-Milliarden-Bereich. Wenn du etwas siehst, das mit 17 beginnt, ist es wahrscheinlich ein aktueller Timestamp.

Häufige Operationen

Aktueller Timestamp:

Math.floor(Date.now() / 1000)  // JavaScript
import time; int(time.time())  # Python

Timestamp zu Datum:

new Date(1704067200 * 1000)  // JavaScript braucht Millisekunden

Datum zu Timestamp:

Math.floor(new Date('2024-01-01').getTime() / 1000)

Das 2038-Problem

Unix-Timestamps wurden ursprünglich als 32-Bit-vorzeichenbehaftete Integer gespeichert. Der Maximalwert? 2.147.483.647.

Das ist der 19. Januar 2038, 03:14:07 UTC.

Nach diesem Moment werden 32-Bit-Systeme überlaufen. Es ist Y2K für Timestamps.

Die meisten modernen Systeme verwenden jetzt 64-Bit-Integer, die für Milliarden Jahre nicht überlaufen werden. Aber Legacy-Systeme existieren. Wenn du mit älterem Code arbeitest, lohnt es sich zu prüfen.

Wenn Timestamps seltsam werden

Negative Timestamps. Daten vor 1970 sind negative Zahlen. -86400 ist der 31. Dezember 1969.

Schaltsekunden. UTC fügt gelegentlich eine Sekunde hinzu, um mit der Erdrotation synchronisiert zu bleiben. Die meisten Systeme ignorieren das. Gelegentlich verursacht es Chaos.

Uhr-Drift. Server-Uhren können sich nicht einig sein. Zwei Timestamps von verschiedenen Maschinen könnten nicht direkt vergleichbar sein, wenn die Uhren nicht synchronisiert waren.


Timestamps sind überall, sobald du anfängst hinzuschauen. API-Antworten, Datenbank-Records, Logdateien, Cookies. Sie zu verstehen macht Debugging schneller und zeitbezogenen Code weniger mysteriös.