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 beispielsweise 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 (beispielsweise So) |
| %A | Voller Name des Wochentags der Locale (beispielsweise Sonntag) |
| %b | Abgekürzter Monatsname der Locale (beispielsweise Jan) |
| %B | Voller Monatsname der Locale (beispielsweise Januar) |
| %c | Datum und Zeit der Locale (beispielsweise Do 03 Mär 2005 23:05:25 CET) |
| %C | Jahrhundert; wie %Y, aber ohne die letzten beiden Stellen (beispielsweise 20) |
| %d | Tag des Monats (beispielsweise 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 (beispielsweise 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 (beispielsweise 31.12.1999) |
| %X | Zeitrepräsentation der Locale (beispielsweise 23:13:48) |
| %y | Die letzten zwei Ziffern des Jahres (00..99) |
| %Y | Jahr |
| %z | +hhmm numerische Zeitzone (beispielsweise -0400) |
| %:z | +hh:mm numerische Zeitzone (beispielsweise -04:00) |
| %::z | +hh:mm:ss numerische Zeitzone (beispielsweise -04:00:00) |
| %:::z | Numerische Zeitzone, die soviele : enthält, wie zur Präzision notwendig sind (beispielsweise -04, +05:30) |
| %Z | Alphabetische Zeitzonenabkürzung (beispielsweise 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'