Come si cambia l'ora dell'orologio hardware Linux (hwclock) nel formato 24 ore?


0

Attualmente, il mio orologio hardware restituisce la data / ora (hwclock --show) in questo modo:

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

E la data ritorna:

Sat Jul 28 21:23:13 BST 2018

Vorrei cambiare l'ora dell'orologio hardware nel formato 24 ore e il formato della data in modo che corrisponda al formato data / ora dell'orologio hardware.

Ho cercato in alto e in basso ma non ho trovato documentazione completa sulla gestione di data e ora su sistemi Linux (ad es. Data breve, media e lunga, formati regionali come GG-MM-AAAA o GG / MM / AA), specialmente in un ambiente da riga di comando.

Ho un orologio e una data da uomo. Non aiutano. So anche che ci sono una serie di domande simili che sono state poste in precedenza. Li ho guardati e non aiutano neanche.

Qualcuno può aiutarmi per quanto riguarda la mia specifica domanda sopra menzionata o indicarmi una documentazione approfondita con una discussione su come gestire più scenari data / ora per diverse regioni in un ambiente a riga di comando? Grazie in anticipo.


1
Quale Linux (distro) e versione stai usando?
Alex,

1
Vuoi davvero ripristinare il bit 2 del registro di stato B o vuoi solo visualizzare l'ora nel formato 24h?
Ignacio Vazquez-Abrams,

2
Inoltre, non è possibile duplicare. Ottengo il formato ISO 8601 proprio come dice la pagina man.
Ignacio Vazquez-Abrams,

quale locale e fuso orario stai usando?
Jasen,

cosa ti prende? LC_TIME=C hwclock --show
Jasen,

Risposte:


2

Puoi datefare il lavoro per te: l' -dopzione ti consente di specificare la data in una "stringa di date leggibile dall'uomo per lo più in formato libero" (da man date).

Sfortunatamente, il formato non è abbastanza libero da accettare l' hwclockoutput, ma funziona bene se si rimuove il campo finale specificando le frazioni di secondo:

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

Ho provato, ma non sono riuscito a trovare il formato quando ci sono zero frazioni di secondo, quindi non so se mostrerebbe lo stesso formato, ad es Sat 28 Jul 2018 08:47:47 PM BST .000000 seconds. Se non è presente un punto decimale, sedsarà necessaria un'altra sostituzione.

A condizione che ci sia ancora un doppio spazio dopo il fuso orario, funzionerà quanto segue:

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

Puoi renderlo uno script di shell o una funzione definita in ~/.bashrcqualcosa di simile hwclockdf(cioè in dateformato).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.