Weniger zur Datumsausgabe auf der Kommandozeile als vielmehr zur Benutzung in Shellscripts kann date das Datum in vielfältiger Weise formatiert ausgeben. Es arbeitet dabei im Prinzip als Frontend zur strftime(3) C-Bibliotheksfunktion. Ein durch `+' eingeleiteter Formatstring wird durch entsprechende Datumsangaben ergänzt und auf dem Standardausgabekanal angezeigt.
In einem vollständig eingerichteten Linux System paßt sich date automatisch an die lokale Zeitzone an. Insbesondere findet der Wechsel zwischen Mitteleuropäischer Zeit (MET) und Sommerzeit (Daylight Saving Time (DST), MEST) automatisch statt. Die Zeitzone kann mit der Umgebungsvariablen TZ verändert werden.
Durch Belegung einer der Umgebungsvariablen LANG
oder LC_TIME mit einem gültigen Wert (->
) kann das Ausgabeformat von date auch
im länderspezifischen Format erfolgen.
In dem durch ein `+' eingeleiteten Formatstring werden die folgenden Parameter unterstützt:
Die Ein- bzw. Umstellung der Systemzeit ist nur der Superuserin erlaubt.
Die Angabe des neuen Datums kann entweder mit der -s Option im Format der normalen Datumsausgabe erfolgen, oder sie erfolgt in Form einer einzigen Zahl. Die einzelnen Stellen der Zahl haben folgende Bedeutung:
Die Systemzeit von Linux ist nicht identisch mit der in der CMOS-Uhr fortgeschriebenen Zeit. Mit dem clock-Utility kann die Systemzeit aus der CMOS-Uhr gesetzt werden oder umgekehrt die CMOS-Uhr mit der aktuellen Systemzeit geladen werden. Damit die automatische Behandlung der Zeitzonen korrekt funktioniert, sollte die CMOS-Uhr auf GMT eingestellt werden. Die Systemzeit wird dann mit dem Kommando clock -u -s (beispielsweise beim Systemstart in rc.local) aus der CMOS-Uhr geladen.
Für das korrekte Handling der Zeitzonen müssen die entsprechenden Steuerdateien im Verzeichnis /usr/lib/zoneinfo installiert sein. Die Dateien posixrules und localtime müssen Kopien oder Links von MET sein. Die Umrechnung der GMT in die lokale Zonenzeit erfolgt durch die normalen Zeitfunktionen der Standardbibliothek. Deshelb wird bei jeder Datumsanzeige automatisch die Mitteleuropäische Zeit (bzw. die in der TZ Umgebungsvariablen festgelegte Zonenzeit) angezeigt.
In der TZ Umgebungsvariablen kann eine andere als die von der Systemverwalterin vorgegebene Zeitzone eingestellt werden. Wenn keine nach der Zeitzone benannte Datei in /usr/lib/zoneinfo existiert, wird automatisch die GMT benutzt.
Wenn die aktuelle Version von date Locales unterstützt kann
in der Umgebungsvariablen LANG oder
LC_TIME ein lokales Datumsformat bestimmt
werden. Der Wert dieser Variablen muß auf eines der Unterverzeichnisse
von /usr/lib/locale passen und in diesem Verzeichnis muß
eine Datei LC_TIME mit der gewünschten tminfo-Struktur
existieren. Zusätzliche Informationen zu Locales finden Sie auf Seite
.
Mit dem Kommando
$ date "+Es ist %H Stunden und %M Minuten nach Mitternacht." Es ist 16 Stunden und 03 Minuten nach Mitternacht. $ _können Sie auf einfache Art eine umständliche Uhrzeit anzeigen lassen.
Wenn Sie Superuserrechte haben, können Sie die Systemzeit einstellen:
# date -s "Thu Sep 16 15:09:07 GMT 1993" Thu Sep 16 17:09:07 MET DST 1993 # _Das Datum wird intern durch eine vorzeichenbehaftete vier Byte Integer Variable repräsentiert. Der ''Nullpunktïst am 1.1.1970 um 0 Uhr. Dieses Datum wird auch als Epoche bezeichnet. Der Bereich zulässiger Systemzeiten beginnt am 13.12.1901 um 20:45:52 und endet am 19.01.2038 um 03:14:07 Universal Coordinated Time.