next up previous contents index
Next: dd Up: Von GNU'sMuscheln Previous: cut

date

       

Funktion:

date schreibt oder setzt die Systemzeit

Syntax:

date [-u] [-s Datum] [+ Formatstring] [ MMDDhhmm[[ CC] YY][. ss]]

Beschreibung:

Das date-Kommando liest oder setzt die Linux Systemzeit.

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 (-> gif) kann das Ausgabeformat von date auch im länderspezifischen Format erfolgen.

In dem durch ein `+' eingeleiteten Formatstring werden die folgenden Parameter unterstützt:

%%
ein einfaches %
%n
das Zeilenende
%t
ein Tabulator

Die Zeitfelder:
%H
Stunden, 00 bis 23
%I
Stunden, 00 bis 12
%k
Stunden, 0 bis 23
%l
Stunden, 1 bis 12
%M
Minuten 00 bis 59
%p
AM oder PM bzw. die lokale Bezeichnung für Vor- und Nachmittag
%r
die Zeit, 12 Stunden (hh:mm:ss AM/PM)
%R
die Zeit, hh:mm
%s
Sekunden seit dem 1.1.1970, 00:00:00 Uhr (Epoche)
%S
Sekunden 00 bis 59
%T
die Zeit, 24 Stunden (hh:mm:ss)
%X
die Zeit, 24 Stunden (%H:%M:%S)
%Z
die Zeitzone; oder nichts, wenn keine Zeitzone feststellbar ist

Die Datenfelder:
%a
der abgekürzte Wochentag im lokalen Format
%A
der ausgeschriebene Wochentag im lokalen Format
%b
der abgekürzte Monat im lokalen Format
%B
der ausgeschriebene Monat im lokalen Format
%c
das Datum und die Zeit im bevorzugten lokalen Format
%C
das Jahrhundert
%d
der Tag im Monat, 01 bis 31
%D
das Datum (mm/dd/yy)
%e
der Tag im Monat, 1 bis 31
%h
das gleiche wie %b
%j
der Tag im Jahr
%m
der Monat 00 bis 12
%U
die Nummer der Woche, Sonntag erster Tag
%w
der Tag in der Woche 0 bis 6
%W
die Nummer der Woche, Montag erster Tag
%x
das Datum (mm/dd/yy)
%y
die letzten beiden Stellen der Jahreszahl
%Y
die ganze Jahreszahl

Die Systemzeit einstellen

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:

MM
Monat
DD
Tag im Monat
hh
Stunde
mm
Minute
CC
die ersten beiden Stellen der Jahreszahl (optional)
YY
die letzten beiden Stellen der Jahreszahl (optional)
ss
die Sekunden (optional)

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.

Optionen:

-d Datum
wandelt das angegebene Datum in das Standardformat oder ein anderes in der Kommandozeile definiertes Format um
-s Datum
(set) setzt die Zeit auf das Datum; das Datum kann Monatsnamen, Zeitzonen und ähnliches enthalten
-u
(universal) zeigt (oder setzt) die Zeit als UCT (Universal Coordinated Time, auch bekannt als Greenwich Mean Time)

Umgebung:

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 gif.

Beispiel:

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.

Autor:

David MacKenzie  



next up previous contents index
Next: dd Up: Von GNU'sMuscheln Previous: cut



Linux Anwenderhandbuch -- Copyright 1993, 1994, 1995 S. Hetze, D. Hohndel, O. Kirch, M. Müller