Domanda Come modificare le impostazioni del fuso orario dalla riga di comando


Ho una macchina virtuale impostata su PST che un paio di colleghi hanno in diversi fusi orari. Se volessi cambiare il fuso orario in EST e GMT, cosa devo fare?


175
2017-08-31 18:19


origine




risposte:


Uso timedatectl

sudo timedatectl set-timezone <timeszone>

Esempi:

  • Fuso orario come EST

    sudo timedatectl set-timezone EST
    
  • Fuso orario come UTC

    sudo timedatectl set-timezone UTC
    
  • Elenco di tutti i fusi orari validi

    timedatectl list-timezones
    

Questo comando è perfezionare per gli script di automazione poiché non ne richiede alcuno interazione dell'utente mentre confrontato con l'altra risposta data basata su dpkg-reconfigure tzdata.


203
2018-03-08 13:15



Non è un fan dei commenti +1, ma ne sto inserendo uno qui poiché questo ha funzionato per me nel modo migliore. Volevo un singolo strumento a riga di comando per modificare il fuso orario, piuttosto che voler avviare un intero menu o un programma GUI (non so cosa tzdata funziona, come funziona, ma non ho bisogno di questo comando di una riga). Grazie! - Phil Ryan
funziona come un fascino;) - user332660
È interessante notare che sta facendo qualcosa di leggermente diverso da tzdata. Ho riscontrato un problema con l'ora di Java diversa da quella del sistema dopo l'applicazione di una patch. Tzdata non ha funzionato per risolvere il problema, ma così è stato. - Daniel Bower
questo non ha funzionato per me; comunque, il dpkg-reconfigure ha fatto il trucco - Antti Haapala
@AnttiHaapala su quale sistema operativo e versione? - Jossef Harush


Quanto segue funziona anche. Per il GMT:

ln -sf /usr/share/zoneinfo/GMT /etc/localtime

Foresta:

ln -sf /usr/share/zoneinfo/EST /etc/localtime

23
2017-08-31 10:09



Penso che sarebbe meglio collegare uno dei file di città piuttosto che GMT o EST, poiché in questo modo terranno traccia dell'ora legale, mentre il collegamento (ad esempio) GMT non cambierà il tempo di sistema per riflettere quando è in vigore l'ora legale nella tua città. per esempio.: ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime - Asfand Qazi


Come root devi eseguire:

dpkg-reconfigure tzdata

Dovrebbe essere avviato uno strumento basato su menu che consente di modificare il fuso orario.


23
2017-08-31 19:41





Il modo più semplice specialmente per un server è elencare i fusi orari:

timedatectl list-timezones

E scegli il tuo, ad esempio:

timedatectl set-timezone Europe/Athens

Questo è tutto! , :-)


10
2018-02-18 15:52





Per eseguire un programma con una diversa impostazione del fuso orario, impostare il TZ variabile di ambiente, ad es. correre TZ=Pacific/Kiritimati date per vedere che ore sono a Christmas Island, o export TZ=Pacific/Kiritimati avere l'ultima impostazione per una sessione di shell.


4
2017-09-01 00:04





Modifica il timezone file al /etc cartella come:

Etc/GMT

Puoi usare il seguente formato:

Region "/" City 

Esempio di /etc/timezone:

Europe/Athens

o

Europe/Paris
Europe/London

Puoi sperimentare con: dpkg-reconfigure tzdata e controlla cat il file del fuso orario.

È necessario riavviare o riavviare un servizio (non il servizio ntp). Non so quale. Se qualcuno lo sa, per favore condividi con noi. (Testato su Ubuntu 15.10 la modifica viene presa in considerazione all'istante)


3
2017-07-28 12:19





cp -p / usr / share / zoneinfo / US / Pacific / etc / localtime

Raccomando CONTRO il collegamento come menzionato da altri. Se alcuni script scrivono accidentalmente il tuo file / etc / localtime, allora sovrascrive il tuo file fuso orario del Pacifico ... ed è un po 'difficile sostituirlo.

Basta copiare il file Pacific sul file localtime con il comando precedente.


1
2017-07-18 20:04



Questo ha funzionato davvero per me. Penso che ci sia un bug con Docker, ansible (?). Timedatectl e dpkg-reconfigure tzdata non sono riusciti per me. Dopo averlo copiato, il fuso orario è cambiato da EST a PDT. - Sun


Io uso il seguente script per chiedere all'utente quale fuso orario impostare, e quindi confermare che è stato effettivamente impostato:

#!/bin/sh
sudo timedatectl set-timezone $(tzselect)
echo
echo timedatectl says:
timedatectl

Lo chiamo tz-set.


0
2018-04-26 07:24