Zum Inhalt springen

date

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  Exit » Exec » jobs » Echo » 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

  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