date

Aus Foxwiki

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

Syntax

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

Parameter

Umgebungsvariablen

Exit-Status

Konfiguration

Dateien

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

  1. Vollständige Dokumentation unter: <https://www.gnu.org/software/coreutils/date>
  2. lokal verfügbar mit: info '(coreutils) date invocation'

Siehe auch

Links

Projekt

Weblinks

  1. https://linuxwiki.de/DatumUndUhrzeit