Come modificare le impostazioni del fuso orario dalla riga di comando


221

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?

Risposte:


288

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 è perfetto per gli script di automazione poiché non richiede alcuna interazione dell'utente rispetto all'altra risposta data in base dpkg-reconfigure tzdata.


1
Non sono un fan dei commenti +1, ma ne sto inserendo uno qui poiché questo ha funzionato nel migliore dei modi. Volevo un unico strumento da riga di comando a una riga per cambiare il fuso orario, piuttosto che voler lanciare un intero menu o programma gui (non so che cosa tzdatafa, come funziona, ma non ho bisogno di questo comando a una riga). Grazie!
Phil Ryan,

funziona come un fascino;)
user332660

È interessante notare che sta facendo qualcosa di leggermente diverso da tzdata. Ho avuto un problema con l'ora Java diversa dall'ora di sistema dopo aver applicato una patch. Tzdata non ha funzionato per risolvere il problema, ma ha funzionato.
Daniel Bower,

1
questo non ha funzionato per me; tuttavia, ha dpkg-reconfigurefatto il trucco.
Antti Haapala,

14.04.4 server ubuntu
Antti Haapala

40

Come root devi eseguire:

dpkg-reconfigure tzdata

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


32

Anche i seguenti funzionano. Per GMT:

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

Foresta:

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

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

questo è il migliore
Hasan Tıngır,

16

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

timedatectl list-timezones

E scegli il tuo, ad esempio:

timedatectl set-timezone Europe/Athens

Questo è tutto! , :-)


6

Per eseguire un programma con un'impostazione di fuso orario diversa, impostare la TZvariabile di ambiente, ad esempio eseguire TZ=Pacific/Kiritimati dateper vedere che ora è su Christmas Island o export TZ=Pacific/Kiritimatiavere l'ultima impostazione per una sessione di shell.


6

Modifica il timezonefile nella /etccartella come:

Etc/GMT

Puoi usare il formato seguente:

Region "/" City 

Esempio di /etc/timezone:

Europe/Athens

o

Europe/Paris
Europe/London

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

È necessario riavviare o riavviare un servizio (non il servizio ntp). Non so quale. Se qualcuno lo sa, ti preghiamo di condividere con noi. (Testato su Ubuntu 15.10 la modifica viene presa immediatamente in considerazione)


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

Raccomando CONTRO i collegamenti come menzionato da altri. Se qualche script /etc/localtimesovrascrive accidentalmente il tuo file, allora sovrascrive il tuo file di fuso orario del Pacifico ... ed è un po 'difficile sostituirlo.

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


Questo ha funzionato davvero per me. Penso che ci sia qualche bug con Docker, ansible (?). Sia timedatectl che dpkg-reconfigure tzdata sono falliti per me. Dopo averlo copiato, il fuso orario è cambiato da EST a PDT.
Dom

2

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

Io lo chiamo tz-set.


0

Come root devi eseguire:

ln -fs /usr/share/zoneinfo/Europe/Warsaw /etc/localtime && dpkg-reconfigure --frontend noninteractive tzdata


Spiegare almeno come funziona questo comando per modificare il fuso orario.
Parto

0

Questo ha funzionato per me su GCP Ubuntu 14 tramite SSH

  1. sudo su
  2. cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
  3. Riavvia il server
  4. Fatto
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.