Das date Kommando ist ziemlich vielseitig. Ein Aufruf ohne Parameter zeigt das aktuelle Datum samt Uhrzeit an.
# date Wed Dec 24 12:00:00 CET 2008
Mit dem Parameter -d läßt sich eine Uhrzeit für die Ausgabe festlegen:
# date -d "1975-01-10 12:00:00" Fri Jan 10 12:00:00 CET 1975
Das erscheint anfangs wenig sinnvoll, doch läßt sich die Zeit auch relativ zur aktuellen Zeit angeben:
# date Wed Dec 24 12:00:00 CET 2008 # date -d "1 hour" Wed Dec 24 13:00:00 CET 2008 # date -d "1 hour ago" Wed Dec 24 11:00:00 CET 2008 # date -d "1 day" Thu Dec 25 12:00:00 CET 2008 # date -d "1 day ago" Tue Dec 23 12:00:00 CET 2008
Leider nicht in der Manpage aufgeführt, da es erst in aktuellen Versionen dazukam, daher oft von Admins gesucht: Auch ein Unix Timestamp kann als Eingabe genutzt werden. Dazu ist das at-Zeichen voranzustellen:
date -d @158583600
So, nun geht’s daran, die Ausgabe festzulegen. Welche Eingabesequenzen welche Ausgabe erzeugen, verraten die MAN-Pages von date. Ein paar davon wären:
%d: day of month (e.g, 01) %m: month (01..12) %Y: year %H: hour (00..23) %M: minute (00..59) %s: seconds since 1970-01-01 00:00:00 UTC (=Unix Timestamp)
Die Eingabesequenz beginnt mit einem Plus-Zeichen, hier hätten wir ein Beispiel in Deutscher Notation:
date "+%d.%m.%Y, %H:%M Uhr"
Die Kombination ist auch möglich: Ein Datum eingeben und in anderem Format wieder ausgeben.
date -d "1975-01-10 12:00:00" "+%d.%m.%Y, %H:%M Uhr"
Und auch hier ist wieder der Unix Timestamp möglich:
date -d "1975-01-10 12:00:00" "+%s"
Oder andersrum, Timestamp als Eingabe, Datum als Ausgabe:
date -d @158583600 "+%d.%m.%Y, %H:%M Uhr"