Die Epoche

In Unix und Linux werden Datumsangaben intern immer als die Anzahl der Sekunden seit dem 1. Januar 1970 um 00:00 Greenwhich Mean Time (GTM, heute UTC) dargestellt. Dieses Urdatum wird manchmal auch "The Epoch" genannt. In manchen Situationen muss man in Shellskripten die Unix-Zeit in ein normales Datum umrechnen und umgekehrt.

Das Datum umrechnen

Die Umrechnung geht in beiden Richtungen mit dem Befehl date. Mit der Option -d gibt man das darzustellende Datum an (sonst gibt date die aktuelle Zeit aus). Eine Epochzeit wird einfach als Zahl mit einem vorangestellen Klammeraffen geschrieben. Im Februar 2009 war z.B. die 1234567890-te Sekunde seit der Epoche:

user@linux> date -d @1234567890
Sa 14. Feb 00:31:30 CET 2009

Conversely, you can convert a date into a Unix timestamp by using a +%s as the format specification for date. Thus you will get the current time, for example:

user@linux> date +%s

Um eine bestimmte Zeit umzurechnen, muss man dieses wieder mit -d angeben. Dabei sind verschiedene Darstellungen erlaubt. Für die Umrechnung des 18.12.2008 um 12:34 geben Sie an:

user@linux> date -d '2008-12-18 12:34:00' +%s
1229600040

Vergessen Sie dabei nicht, dass der Zeitstempel immer in UTC gerechnet - im Gegensatz zum ausgeschriebenen Datum, welches relativ zu Ihrer Zeitzone zu verstehen ist. Deswegen bekommt man in Deutschland auch -3600 Sekunden, wenn man den 1.1.1970 in Sekunden umrechnet:

user@linux> date -d '1970-01-01 00:00:00' +%s
-3600

Warum? Als es in Deutschland der 1.1.1970 um 00:00 war, war es in England noch 23:00 am Vortag.

Wissensbank Linux

Diese Artikel wurden vom Gründer von Checkmk vor vielen Jahren geschrieben. Sie sind immer noch gültig und haben deshalb weiterhin ihr Zuhause auf dieser Webseite. Mathias hat in der Zwischenzeit die Monitoringlösung Checkmk entwickelt

Mehr zu Checkmk