Configuração de fuso horário no Linux [closed]

135

Estou definindo o fuso horário para GMT + 6 em minha máquina Linux copiando o arquivo zoneinfo para /etc/localtime , mas o comando date ainda está mostrando a hora como UTCtime-6 . Alguém pode me explicar esse comportamento?

Estou assumindo que o comando date deve exibir UTCtime+6 time. Aqui estão os passos que estou seguindo:

date
Wed Jan 22 17:29:01 IST 2014

date -u
Wed Jan 22 11:59:01 UTC 2014

cp /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime

date
Wed Jan 22 05:59:21 GMT+6 2014

date -u
Wed Jan 22 11:59:01 UTC 2014
    
por Rahul Dhobi 23.01.2014 / 05:36

3 respostas

236

Dê uma olhada neste post intitulado: Como: 2 métodos para alterar o fuso horário em Linux .

distros da Red Hat

Se você estiver usando uma distribuição como a Red Hat, sua abordagem de copiar o arquivo seria aceitável.

OBSERVAÇÃO: Se você está procurando uma solução distro-agnóstica, isso também funciona no Debian, embora haja abordagens mais simples abaixo se você só precisa se preocupar com máquinas 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         

Eu recomendaria vincular a ela em vez de copiá-la.

$ sudo unlink /etc/localtime 
$ sudo ln -s /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime

A data atual mostra o fuso horário diferente:

$ date -u
Thu Jan 23 05:40:31 UTC 2014

$ date 
Wed Jan 22 23:40:38 GMT+6 2014

Ubuntu / Debian Distros

Para alterar o fuso horário em qualquer uma dessas distros, você pode usar este comando:

$ sudo dpkg-reconfigure tzdata

$sudodpkg-reconfiguretzdataCurrentdefaulttimezone:'Etc/GMT-6'Localtimeisnow:ThuJan2311:52:16GMT-62014.UniversalTimeisnow:ThuJan2305:52:16UTC2014.

Agora,quandoverificamos:

$date-uThuJan2305:53:32UTC2014$dateThuJan2311:53:33GMT-62014

NOTA:HátambémestaopçãonoUbuntu14.04esuperiorcomumúnicocomando(fonte:AskUbuntu- definindo o fuso horário do terminal ):

$ sudo timedatectl set-timezone Etc/GMT-6

Sobre o uso de "Etc / GMT + 6"

trecho de @ MattJohnson's answer on SO

Zones like Etc/GMT+6 are intentionally reversed for backwards compatibility with POSIX standards. See the comments in this file.

You should almost never need to use these zones. Instead you should be using a fully named time zone like America/New_York or Europe/London or whatever is appropriate for your location. Refer to the list here.

    
por 23.01.2014 / 06:52
23

É assim que faço no Ubuntu. Basta substituir Asia/Tokyo pelo seu próprio fuso horário.

echo 'Asia/Tokyo' | sudo tee /etc/timezone

sudo dpkg-reconfigure -f noninteractive tzdata

Existe um erro em tzdata : certos valores são normalizados por 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'
    
por 23.01.2014 / 09:48
13
O comando

tzselect é feito para fazer o que você quer.

    
por 23.01.2014 / 09:03