In Log-Dateien, Datenbanken und API-Antworten begegnet einem staendig eine grosse, scheinbar zusammenhanglose Zahl wie 1700000000. Das ist ein Unix-Zeitstempel – eine der wichtigsten und elegantesten Konventionen der Informatik, um einen exakten Zeitpunkt zu speichern. Dieser Artikel erklaert, was dahintersteckt und worauf du beim Umrechnen achten musst.
Was ist die Unix-Epoch?
Ein Unix-Zeitstempel zaehlt die Anzahl der Sekunden, die seit einem fest definierten Nullpunkt vergangen sind: dem 1. Januar 1970, 00:00:00 Uhr UTC. Dieser Nullpunkt heisst Unix-Epoch. Alles davor ist negativ, alles danach positiv. Der Wert 1700000000 entspricht damit dem 14. November 2023, kurz nach 23 Uhr UTC.
Der Charme dieses Systems: Ein Zeitpunkt ist eine einzige Zahl – keine Monate, keine Schaltjahre, keine Sommerzeit im Wert selbst. Das macht Vergleiche und Berechnungen trivial. Die Differenz zweier Zeitstempel ist einfach die Differenz zweier Zahlen.
Sekunden oder Millisekunden? Die haeufigste Falle
Hier lauert der haeufigste Fehler. Unix-Systeme und viele Sprachen wie Python oder PHP arbeiten klassisch mit Sekunden. JavaScript und Java dagegen liefern Millisekunden seit der Epoch – also den tausendfachen Wert. Date.now() in JavaScript gibt zum Beispiel 1700000000000 zurueck.
Verwechselt man beides, landet man entweder im Jahr 1970 (man hat eine Millisekunden-Zahl als Sekunden interpretiert) oder weit in der Zukunft. Eine grobe Faustregel: Hat die Zahl rund 10 Stellen, sind es Sekunden; hat sie rund 13 Stellen, sind es Millisekunden. Der Epoch-Millisekunden-Konverter erkennt beide Faelle und wandelt einen Zeitstempel in Sekunden oder Millisekunden direkt in ein lesbares Datum um – ganz ohne Rechnerei.
UTC und Zeitzonen
Ein Unix-Zeitstempel ist immer in UTC (Coordinated Universal Time) definiert. Er enthaelt keine Zeitzone. Das ist ein Vorteil, kein Mangel: Der gleiche Zeitpunkt ist weltweit dieselbe Zahl, egal ob in Berlin, New York oder Tokio.
Die Zeitzone kommt erst ins Spiel, wenn man den Stempel fuer Menschen darstellt. Ein und derselbe Wert ergibt in Berlin 0:13 Uhr und in Los Angeles 15:13 Uhr des Vortages. Deshalb sollte man Zeit immer als UTC-Stempel speichern und erst bei der Ausgabe in die lokale Zeit umrechnen – ein Prinzip, das viele Zeitzonen-Bugs von vornherein vermeidet.
Das Jahr-2038-Problem
Viele aeltere Systeme speichern den Zeitstempel als vorzeichenbehaftete 32-Bit-Zahl. Diese kann maximal bis 2.147.483.647 zaehlen – ein Wert, der am 19. Januar 2038 um 03:14:07 Uhr UTC erreicht wird. Danach laeuft der Zaehler ueber und springt ins Negative, also rechnerisch zurueck ins Jahr 1901.
Dieses "Year 2038 Problem" ist konzeptionell mit dem Jahr-2000-Problem verwandt. Die Loesung ist der Umstieg auf 64-Bit-Zeitstempel, die fuer rund 292 Milliarden Jahre reichen. Moderne Betriebssysteme und Sprachen nutzen das laengst; Sorge bereiten nur noch alte Embedded-Systeme und Legacy-Datenbanken.
Wo Zeitstempel ueberall auftauchen
- Datenbanken: als
created_atoderupdated_at, oft als Integer-Spalte. - JWT-Tokens: die Felder
iat(issued at) undexp(expires) sind Unix-Zeitstempel in Sekunden. - HTTP-Header und Cookies: Ablaufzeiten werden intern oft als Epoch gespeichert.
- Log-Dateien: fuer praezise, zeitzonenunabhaengige Eintraege.
Manuelles Umrechnen
Im Kopf ist die Umrechnung kaum machbar, aber das Prinzip ist simpel: Sekunden durch 86.400 (Sekunden pro Tag) teilen ergibt die Tage seit 1970. Auf der Kommandozeile hilft unter Linux date -d @1700000000. In SQL gibt es Funktionen wie FROM_UNIXTIME(). Fuer den schnellen Blick zwischendurch ist ein Online-Werkzeug am bequemsten.
Wer haeufig mit Zeitintervallen und Wartezeiten arbeitet, findet im Countdown Rechner ein passendes Tool, um Tage und Stunden bis zu einem Datum zu bestimmen. Weitere Helfer fuer Entwickleralltag und Konfiguration sammeln wir in den Webtools.
Fazit
Der Unix-Zeitstempel ist eine geniale Vereinfachung: ein einziger Zaehler ab 1970 in UTC. Die zwei wichtigsten Stolpersteine sind die Verwechslung von Sekunden und Millisekunden sowie das Vergessen der Zeitzone bei der Anzeige. Wer einen konkreten Wert prueft, ist mit dem Epoch-Millisekunden-Konverter in Sekunden am Ziel.