Wie ändern Sie die Uhrzeit der Linux-Hardware (hwclock) in das 24-Stunden-Format?

770
wilimayze

Derzeit gibt meine Hardwareuhr das Datum und die Uhrzeit (hwclock --show) wie folgt zurück:

Sat 28 Jul 2018 08:47:47 PM BST .659124 seconds

Und Datum kehrt zurück:

Sat Jul 28 21:23:13 BST 2018

Ich möchte die Uhrzeit der Hardwareuhr auf das 24-Stunden-Format und das Datumsformat ändern, um sie an das Datums- / Uhrzeitformat der Hardwareuhr anzupassen.

Ich habe hoch und niedrig gesucht, aber keine gründliche Dokumentation zum Verwalten von Datum und Uhrzeit auf Linux-Systemen gefunden (dh kurzes, mittleres und langes Datum, regionale Formate wie DD-MM-JJJJ oder DD / MM / YY), insbesondere in eine Befehlszeilenumgebung.

Ich habe Uhr und Datum eingestellt. Sie helfen nicht. Ich weiß auch, dass es eine Reihe ähnlicher Fragen gibt, die zuvor gestellt wurden. Ich habe sie angeschaut und sie helfen auch nicht.

Kann jemand in Bezug auf meine oben erwähnte spezifische Frage helfen oder weist ich auf eine ausführliche Dokumentation mit einer Diskussion zum Umgang mit mehreren Datums- / Zeitszenarien für verschiedene Regionen in einer Befehlszeilenumgebung hin? Danke im Voraus.

0
Welche Linux (Distribution) und Version verwenden Sie? Alex vor 6 Jahren 1
Möchten Sie Bit 2 des Statusregisters B wirklich zurücksetzen, oder möchten Sie nur die Uhrzeit im 24-Stunden-Format anzeigen lassen? Ignacio Vazquez-Abrams vor 6 Jahren 1
Kann auch nicht duplizieren. Ich bekomme das ISO 8601-Format, genau wie die Manpage sagt. Ignacio Vazquez-Abrams vor 6 Jahren 2
@Alex Ubuntu 16.04.05 LTS. wilimayze vor 6 Jahren 0
@ IgnacioVazquez-Abrams Ich möchte nur die Uhrzeit im 24h-Format anzeigen, das ist alles und auch das Datum / die Uhrzeit so anordnen, dass "Sat 28 Jul 2018 20:47:47 PM BST" für System (Datum) und Hardware ( Uhr). Ich mache mir keine Sorgen um den BST-Teil, weil ich meine Region mit tzdata ändern konnte. wilimayze vor 6 Jahren 0
Welches Gebietsschema und welche Zeitzone verwenden Sie? Jasen vor 6 Jahren 0
was bringt dich das? `LC_TIME = C hwclock --show` Jasen vor 6 Jahren 0
@Jasen Zeitzone ist Europa / London und LC_TIME = C hwclock --show gibt "Mon Jul 30 00:15:06 2018 .049586 Sekunden" zurück wilimayze vor 6 Jahren 0

1 Antwort auf die Frage

2
AFH

Sie können datedie Arbeit für Sie erledigen: Mit dieser -dOption können Sie das Datum in einer "meist frei lesbaren, vom Menschen lesbaren Datumszeichenfolge" (von man date) angeben .

Leider ist das Format nicht ganz frei, um die hwclockAusgabe zu akzeptieren, aber es funktioniert gut, wenn Sie das letzte Feld entfernen, in dem Sekundenbruchteile angegeben werden:

date -d "$(hwclock|sed 's/ \..*$//g')" 

Ich habe das Format getestet, aber es ist mir nicht gelungen, das Format zu treffen, wenn es keine Sekundenbruchteile gibt. Ich weiß nicht, ob es dasselbe Format anzeigen würde, z Sat 28 Jul 2018 08:47:47 PM BST .000000 seconds. Wenn es keine Dezimalstelle gibt, ist ein weiterer sedErsatz erforderlich.

Vorausgesetzt, dass nach der Zeitzone noch ein doppeltes Leerzeichen vorhanden ist, funktioniert Folgendes:

date -d "$(hwclock|sed 's/ .*$//g')" 

Sie können dies als Shellskript oder als Funktion definieren ~/.bashrc, die wie hwclockdf(dh im dateFormat) definiert ist.