Como faço para redefinir permanentemente o fuso horário no Debian?

20

Dreamhost parece pensar que gostamos do PDT, apesar de estar no meio-oeste. Como faço para mudar o fuso horário?

    
por denaje 18.09.2012 / 12:11

5 respostas

49

Uma ferramenta que achei mais fácil de usar é a dpkg-reconfigure . Use:

sudo dpkg-reconfigure tzdata

Você receberá várias opções, incluindo algumas que não estão incluídas em tzselect .

    
por 03.02.2013 / 15:11
11

Isso é presumivelmente um pouco atrasado para o OP e mais destinado a outros pesquisadores que chegam aqui.

Se você precisar de uma solução não interativa, tente esta solução em mudando o fuso horário com o dbkg-reconfigure tzdata e o debconf-set-selections

echo "Europe/Zurich" > /etc/timezone 
dpkg-reconfigure -f noninteractive tzdata

Você pode descobrir seu fuso horário pesquisando em / usr / share / zoneinfo. Na verdade, o comando dpkg-reconfigure acima copia o arquivo apropriado de lá para / etc / localtime. Eu costumava fazer isso manualmente, e parece funcionar bem.

Não fique surpreso se processos de longa duração não atenderem à mudança. Por exemplo, os timestamps de log do Apache vêm à mente. Considere se isso é importante e, portanto, se você precisa reiniciar os processos em execução ou mesmo reinicializar.

    
por 04.03.2014 / 16:23
7

Atualização:

A resposta canônica (para a qual o Ynhockey merece crédito) parece ser:

dpkg-reconfigure tzdata

Minha resposta original está abaixo. Eu simplesmente teria deletado essa resposta completamente, mas o superuser.com não permite que as respostas aceitas sejam apagadas.

link diz

the simple way to edit your timezone is to use the /usr/bin/tzselect command.

...

Once you've set your timezone you might wish to change the UTC setting, upon Debian machines you can find that in the file /etc/default/rcS. Although changing this will require a reboot.

    
por 18.09.2012 / 12:23
5

Para editá-lo de forma não interativa em versões recentes do Debian e do Ubuntu (Stretch / Xenial etc.), você também precisa remover /etc/localtime , caso contrário, /etc/timezone será sobrescrito.

echo 'Europe/Zurich' > /etc/timezone 
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

Esta resposta é baseada na resposta do mc0e '. Eu não posso adicionar um comentário com a minha reputação.

    
por 10.10.2017 / 17:32
2

TL; DR

echo "TZ=Etc/UTC" >> /etc/environment
tzconfig

onde Etc/UTC é o seu fuso horário preferido que você encontrou usando tzselect .

Versão mais longa

Quando você está usando

dpkg-reconfigure tzdata

as informações de fuso horário não são mantidas após a reinicialização. Você pode verificar suas configurações com

diff -s /etc/localtime /usr/share/zoneinfo/'cat /etc/timezone'

Se você está apenas atualizando /etc/timezone , a atualização não será consistente com /etc/localtime , portanto é melhor executar a>

tzconfig

Use tzselect para descobrir quais fusos horários realmente existem (ou simplesmente navegue pelo diretório /usr/share/zoneinfo ).

Nos sistemas POSIX, o TZ deve ter precedência antes de /etc/localtime :

export TZ='Europe/Berlin'
$ date
Tue Apr 10 08:51:03 CEST 2018
export TZ='Pacific/Efate'
$ date
Tue Apr 10 18:28:33 +11 2018

Usar diretamente TZ pode você economiza muitas chamadas de sistema , já que as funções relacionadas a data / hora freqüentemente usadas precisam acessar o sistema de arquivos toda vez que algum programa solicita a data atual. É uma micro otimização, mas bastante simples.

    
por 12.09.2014 / 09:22