Dai un'occhiata a questo post sul blog intitolato:How To:2 Methods To Change TimeZone in Linux.
Distribuzioni Red Hat
Se stai utilizzando una distribuzione come Red Hat, il tuo approccio alla copia del file sarebbe per lo più accettabile.
NOTA: Se stai cercando una soluzione distro-agnostica, funziona anche su Debian, anche se di seguito ci sono approcci più semplici se hai solo bisogno di preoccuparti delle macchine Debian.
$ ls /usr/share/zoneinfo/
Africa/ CET Etc/ Hongkong Kwajalein Pacific/ ROK zone.tab
America/ Chile/ Europe/ HST Libya Poland Singapore Zulu
Antarctica/ CST6CDT GB Iceland MET Portugal Turkey
Arctic/ Cuba GB-Eire Indian/ Mexico/ posix/ UCT
Asia/ EET GMT Iran MST posixrules Universal
Atlantic/ Egypt GMT0 iso3166.tab MST7MDT PRC US/
Australia/ Eire GMT-0 Israel Navajo PST8PDT UTC
Brazil/ EST GMT+0 Jamaica NZ right/ WET
Canada/ EST5EDT Greenwich Japan NZ-CHAT ROC W-SU
Raccomanderei comunque di collegarvi ad esso piuttosto che copiarlo.
$ sudo unlink /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime
Ora la data mostra il diverso fuso orario:
$ date -u
Thu Jan 23 05:40:31 UTC 2014
$ date
Wed Jan 22 23:40:38 GMT+6 2014
Distribuzioni Ubuntu/Debian
Per cambiare il fuso orario su una di queste distribuzioni puoi usare questo comando:
$ sudo dpkg-reconfigure tzdata
$ sudo dpkg-reconfigure tzdata
Current default time zone: 'Etc/GMT-6'
Local time is now: Thu Jan 23 11:52:16 GMT-6 2014.
Universal Time is now: Thu Jan 23 05:52:16 UTC 2014.
Ora, quando lo controlliamo:
$ date -u
Thu Jan 23 05:53:32 UTC 2014
$ date
Thu Jan 23 11:53:33 GMT-6 2014
NOTA: C'è anche questa opzione in Ubuntu 14.04 e versioni successive con un singolo comando (fonte:Chiedi a Ubuntu - impostazione del fuso orario dal terminale):
$ sudo timedatectl set-timezone Etc/GMT-6
Sull'uso di "Etc/GMT+6"
estratto dalla risposta di @MattJohnson su SO
Zone come
Etc/GMT+6
sono intenzionalmente invertiti per retrocompatibilità con gli standard POSIX. Vedi i commenti in questo file.Non dovresti quasi mai aver bisogno di usare queste zone. Invece dovresti utilizzare un fuso orario con nome completo come
America/New_York
oEurope/London
o qualunque cosa sia appropriata per la tua posizione. Fare riferimento all'elenco qui.
Ecco come lo faccio in Ubuntu. Basta sostituire Asia/Tokyo
con il tuo fuso orario.
echo 'Asia/Tokyo' | sudo tee /etc/timezone
sudo dpkg-reconfigure -f noninteractive tzdata
C'è un bug in tzdata
:alcuni valori vengono normalizzati da dpkg-reconfigure
:
echo 'US/Central' >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata
# Current default time zone: 'America/Chicago'
echo 'US/Eastern' >/etc/timezone
apt-get install --reinstall tzdata
# Current default time zone: 'America/New_York'
Il comando tzselect è fatto per fare quello che vuoi.