date
date - Ausgeben oder Setzen von Systemdatum und -zeit
Beschreibung
- Die aktuelle Uhrzeit im angegebenen FORMAT anzeigen oder die Systemzeit setzen
- Die obligatorischen Argumente für Optionen sind für deren Kurz- und Langform gleich
Installation
siehe Kategorie:Coreutils
Anwendungen
Wandelt die Sekunden seit Beginn der Unix-Epoche (1970-01-01 UTC) in ein Datum um
$ date --date='@2147483647'
Zeigt die Zeit an der Westküste der USA an (verwenden Sie tzselect(1), um den Wert für TZ herauszufinden)
$ TZ='America/Los_Angeles' date
Zeigt die örtliche Zeit für 9 Uhr morgens am nächsten Freitag an der Westküste der USA an
$ date --date='TZ="America/Los_Angeles" 09:00 next Fri'
Zeitzone setzen
Die Zeitzone wird durch die Anweisung tzconfig gesetzt:
tzconfig
Die Anweisung erfordert in der Regel Administratorrechte und wird ohne Parameter aufgerufen. Die Zeitzone wird dann von der Anweisung abgefragt.
Uhrzeit anzeigen
date +'%Y%m%d %H%M%S' # ergibt z. B. 20060905 093432 # allgemein date +FORMAT # FORMAT ist ein String, wie er von strftime(3) interpretiert wird
System-Uhr und Hardware-Uhr
Hardware-Uhr
Schaltkreis auf dem Mainboard, der wie eine Quarz-Uhr funktioniert
Betriebssystem-Uhr
das ist eine durch Interrupts angetriebene und nicht gerade sonderlich genaue Software-Uhr
Nachdem man mit date die Software-Uhr gestellt hat, sollte man diese Zeit auch in die Hardware-Uhr übertragen:
# system clock -> hardware clock hwclock --systohc
Ebenso kann man die System-Uhr nach der genaueren Hardware-Uhr neu stellen lassen:
# hardware clock -> system clock hwclock --hctosys
Die Zusatzoption -u zu hwclock sollte man dann verwenden, wenn man die Hardware-Uhr auf UTC (in der Praxis gleichbedeutend mit GMT) laufen hat, was sehr empfehlenswert ist.
Wenn in /etc/adjtime steht
0.667509 1059309076 0.000000 1059309076 UTC
Braucht man den -u Schalter nicht. Statt UTC könnte da auch LOCAL stehen.
Gesetzt wird es bei Debian in /etc/default/rcS
# Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not. UTC=yes
Bei RedHat/Mandriva findet sich die Einstellung unter /etc/sysconfig/clock (UTC=true), bei Gentoo unter /etc/rc.conf, oder seit neuem unter /etc/conf.d/clock. Bei SuSE war wohl rc.config? Andere Distributionen?
Umstellung Winter-/Sommerzeit
Aufruf
$ date [OPTION]… [+FORMAT] $ date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
date MMTThhmm
DATUMSZEICHENKETTE
MM | Monat |
TT | Tag |
hh | Stunden |
mm | Minuten |
# oder auch in der für USA üblichen Schreibweise: date -s "12/31 23:59"
Bei der Anweisung --date=ZEICHENKETTE kann ein menschenlesbares Datum auf Englisch in einem ziemlich freien Format angegeben werden
- beispielsweise Sun, 29 Feb 2004 16:21:42 -0800, 2004-02-29 16:21:42 oder sogar next Thursday (nächster Donnerstag)
- Eine Datumszeichenkette darf Teile enthalten, die das Kalenderdatum angeben, die Tageszeit, Zeitzone, den Tag der Woche, eine relative Zeit, ein relatives Datum sowie Zahlen.
- Eine leere Zeichenkette bedeutet den Anfang des aktuellen Tages.
- Das Format der Datumszeichenkette ist komplexer, als es hier in einfachen Worten beschrieben werden kann. In der Info-Dokumentation ist es vollständig erklärt.
Optionen
Unix | GNU | Beschreibung |
---|---|---|
-d | --date=ZEICHENKETTE | Die in ZEICHENKETTE beschriebene Zeit anzeigen, nicht jetzt |
--debug | kommentiert das ausgewertete Datum und warnt über fragwürdige Verwendungen nach Stderr | |
-f | --file=DATUMSDATEI | Wie --date; jeweils einmal für jede Zeile in DATUMSDATEI |
-I[FMT] | --iso-8601[=FMT] | Datum und Zeit im ISO-8601-Format anzeigen. FMT=date zur Ausgabe nur des Datums (Voreinstellung), hours, minutes, seconds oder ns für Datum und Zeit mit angegebener Genauigkeit. Beispiel: 2006-08-14T02:34:56-06:00 |
-R | --rfc-email | Datum und Zeit im RFC-5322-Format anzeigen. Beispiel: Mon, 14 Aug 2006 02:34:56 -0600 |
--rfc-3339=FMT | Datum/Zeit im RFC-3339-Format anzeigen. FMT=date, seconds oder ns für Datum und Zeit mit angegebener Genauigkeit. Beispiel: 2006-08-14 02:34:56-06:00 | |
-r | --reference=DATEI | Zeit der letzten Änderung von DATEI anzeigen |
-s | --set=ZEICHENKETTE | Die Zeit wie in ZEICHENKETTE beschrieben setzen |
-u, --utc | --universal | Koordinierte Weltzeit (UTC) anzeigen oder setzen |
--help | zeigt Hilfeinformationen an und beendet das Programm. | |
--version | gibt Versionsinformationen aus und beendet das Programm. |
FORMAT bestimmt die Ausgabe. Interpretierte Sequenzen sind:
Option | Beschreibung |
---|---|
%% | Ein Prozentzeichen (%) |
%a | Abgekürzter Name des Wochentags der Locale (z. B. So) |
%A | Voller Name des Wochentags der Locale (z. B. Sonntag) |
%b | Abgekürzter Monatsname der Locale (z. B. Jan) |
%B | Voller Monatsname der Locale (z. B. Januar) |
%c | Datum und Zeit der Locale (z. B. Do 03 Mär 2005 23:05:25 CET) |
%C | Jahrhundert; wie %Y, aber ohne die letzten beiden Stellen (z. B. 20) |
%d | Tag des Monats (z. B. 01) |
%D | Amerikanisches Datumsformat; dasselbe wie %m/%d/%y |
%e | Tag des Monats, mit Leerzeichen aufgefüllt; dasselbe wie %_d |
%F | Komplettes Datum; dasselbe wie %+4Y-%m-%d |
%g | Die letzten beiden Stellen des Jahres der ISO‐Wochennummer (siehe %G) |
%G | Jahr der ISO‐Wochennummer (siehe %V); normalerweise nur mit %V sinnvoll |
%h | Dasselbe wie %b |
%H | Stunde (00..23) |
%I | Stunde (01..12) |
%j | Tag des Jahres (001..366) |
%k | Stunde, mit Leerzeichen aufgefüllt ( 0..23); dasselbe wie %_H |
%l | Stunde, mit Leerzeichen aufgefüllt ( 1..12); dasselbe wie %_I |
%m | Monat (01..12) |
%M | Minute (00..59) |
%n | Ein Zeilenumbruch |
%N | Nanosekunden (000000000..999999999) |
%p | Das Äquivalent von AM oder PM der Locale; leer, wenn unbekannt |
%P | Wie %p, aber in Kleinbuchstaben |
%q | Quartal des Jahres (1..4) |
%r | Zeit im 12‐Stunden‐Format der Locale (z. B. 11:11:04) |
%R | Stunden und Minuten im 24‐Stunden‐Format; dasselbe wie %H:%M |
%s | Sekunden seit 1970-01-01 00:00:00 UTC |
%S | Sekunde (00..60) |
%t | Ein Tabulator |
%T | Zeit; dasselbe wie %H:%M:%S |
%u | Tag der Woche (1..7); 1 steht für Montag |
%U | Wochennummer des Jahres, mit Sonntag als erstem Tag der Woche (00..53) |
%V | ISO‐Wochennummer, mit Montag als erstem Tag der Woche (01..53) |
%w | Tag der Woche (0..6); 0 steht für Sonntag |
%W | Wochennummer des Jahres, mit Montag als erstem Tag der Woche (00..53) |
%x | Datumsrepräsentation der Locale (z. B. 31.12.1999) |
%X | Zeitrepräsentation der Locale (z. B. 23:13:48) |
%y | Die letzten zwei Ziffern des Jahres (00..99) |
%Y | Jahr |
%z | +hhmm numerische Zeitzone (z. B. -0400) |
%:z | +hh:mm numerische Zeitzone (z. B. -04:00) |
%::z | +hh:mm:ss numerische Zeitzone (z. B. -04:00:00) |
%:::z | Numerische Zeitzone, die soviele : enthält, wie zur Präzision notwendig sind (z. B. -04, +05:30) |
%Z | Alphabetische Zeitzonenabkürzung (z. B. EDT) |
Standardmäßig füllt date numerische Felder mit Nullen auf. Die folgenden optionalen Schalter können % folgen:
Option | Beschreibung |
---|---|
- (Minus) | Feld nicht auffüllen |
_ (Unterstrich) | Mit Leerzeichen auffüllen |
0 (Null) | Mit Nullen auffüllen |
+ | Mit Nullen auffüllen und + vor zukünftige Jahre mit >4 Ziffern setzen |
^ | Großbuchstaben benutzen, wenn möglich |
# | Groß- und Kleinbuchstaben vertauschen, wenn möglich |
Nach jedem Schalter kommt eine optionale Feldbreite als Dezimalzahl und dann ein optionaler Modifikator, der entweder E oder O ist. Bei E wird die alternative Repräsentation der Locale verwendet, falls vorhanden. Bei O werden die alternativen numerischen Symbole der Locale verwendet, falls vorhanden.
Argumente
Umgebung
Rückgabewert
Konfiguration
Dateien
Sicherheit
Dokumentation
RFC
Man-Page
Info-Pages
- Vollständige Dokumentation unter: <https://www.gnu.org/software/coreutils/date>
- lokal verfügbar mit: info '(coreutils) date invocation'