Date: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 92: Zeile 92:




== 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 vs. Hardware-Uhr ==
Es ist wichtig zu wissen, dass es zwei Uhren gibt:
* die Hardware-Uhr: das ist ein Uhrenschaltkreis auf dem Mainboard, der wie eine Quarz-Uhr funktioniert.
* die 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 Systemuhr 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 [https://de.wikipedia.org/wiki/Koordinierte_Weltzeit UTC] (in der Praxis gleichbedeutend mit [https://de.wikipedia.org/wiki/GMT 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 [https://linuxwiki.de/Debian 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/[https://linuxwiki.de/Mandriva Mandriva] findet sich die Einstellung unter /etc/sysconfig/clock (UTC=true), bei [https://linuxwiki.de/Gentoo Gentoo] unter /etc/rc.conf, oder seit neuem unter /etc/conf.d/clock. Bei [https://linuxwiki.de/SuSE SuS]E war wohl rc.config? Andere Distributionen?
=== Systemuhr mit einem ZeitServer synchronisieren ===
Siehe [https://linuxwiki.de/ZeitServer ZeitServer] bzw. [https://linuxwiki.de/ntp ntp].
== Umstellung Winter-/Sommerzeit ==
Heute Morgen war die Uhrzeit an meinem Rechner korrekt von Sommer- auf Winterzeit umgestellt. Frage: Woher weiß [https://linuxwiki.de/Linux Linux] eigentlich, wann die Zeit umzustellen ist? Ein [https://linuxwiki.de/ntp ntp]-Dämon läuft bei mir nicht.
* vermutl. durch die /etc/localtime, denke ich? Den Inhalt kann ich leider nicht rauslesen
* Das ist ein symbolischer Link auf /usr/share/zoneinfo/Europe/Berlin (offenbar eine Binär-Datei). Frage: Was steht da drin? Wie funktioniert das?
Normalerweise wird unter Linux die Systemzeit nicht umgestellt, da das System [https://de.wikipedia.org/wiki/GMT GMT] als Zeitzone annimmt (kann man aber alles einstellen). Die Zeit, die der Benutzer angezeigt bekommt, wird dann je nach Datum und Zeitzone umgerechnet und angezeigt.
Man kann [https://linuxwiki.de/KNOPPIX KNOPPIX] so starten, dass von einer UTC- (und nicht Localtime-) System-Uhr ausgegangen wird (siehe [https://linuxwiki.de/KNOPPIX/CheatCodes KNOPPIX/CheatCodes]). Ggf. geht die Uhr z.B. 2 Stunden vor. Das bleibt dann auch so, wenn man [https://linuxwiki.de/KNOPPIX/AufFestplatte KNOPPIX/AufFestplatte] installiert.
Frage: Wie kann ich das nachträglich so einstellen, dass das Betriebssystem weiß, dass die Uhr auf UTC läuft?
'''/etc/init.d/hwclock.sh''' ist Dein Freund


[[Kategorie:Linux:Zeit]]
[[Kategorie:Linux:Zeit]]

Version vom 8. September 2022, 10:05 Uhr

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

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'

DATUMSZEICHENKETTE

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.

Syntax

$ date [OPTION]… [+FORMAT]
$ date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

Optionen

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-Homepage

Weblinks

  1. https://linuxwiki.de/DatumUndUhrzeit

Einzelnachweise

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5

TMP

date MMTThhmm
MM Monat
TT Tag
hh Stunden
mm Minuten
# oder auch in der für USA üblichen Schreibweise:
date -s "12/31 23:59"