Questão Como alterar as configurações de fuso horário na linha de comando


Eu tenho uma máquina virtual que é definida para PST que alguns colegas têm em fusos horários diferentes. Se eu quisesse mudar o fuso horário para EST e GMT, o que preciso fazer?


175
2017-08-31 18:19


origem




Respostas:


Usar timedatectl

sudo timedatectl set-timezone <timeszone>

Exemplos:

  • Fuso horário como EST

    sudo timedatectl set-timezone EST
    
  • Fuso horário, como, UTC

    sudo timedatectl set-timezone UTC
    
  • Listando todos os fusos horários válidos

    timedatectl list-timezones
    

Este comando é perfeito para scripts de automação, uma vez que não requer qualquer interação com o usuário enquanto comparado com a outra resposta dada com base em dpkg-reconfigure tzdata.


204
2018-03-08 13:15



Não sou fã de comentários do +1, mas estou colocando um aqui, pois isso funcionou para mim da melhor maneira. Eu estava querendo que uma única ferramenta de linha de comando de uma linha mudasse o fuso horário, ao invés de querer lançar algum programa de menu ou gui (eu não sei o que tzdata faz, como funciona, mas eu não preciso com este comando de uma linha). Obrigado! - Phil Ryan
Funciona como um encanto ;) - user332660
Curiosamente, está fazendo algo um pouco diferente do tzdata. Eu tive um problema com o tempo de Java ser diferente do tempo do sistema depois de aplicar um patch. Tzdata não funcionou para corrigir o problema, mas isso aconteceu. - Daniel Bower
isso não funcionou para mim; No entanto, o dpkg-reconfigure fez o truque. - Antti Haapala
@AnttiHaapala em qual sistema operacional e versão? - Jossef Harush


O seguinte também funciona. Para GMT:

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

Para EST:

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

23
2017-08-31 10:09



Eu acho que seria melhor ligar um dos arquivos da cidade ao invés de GMT ou EST, pois eles manterão o controle do horário de verão, enquanto a ligação (por exemplo, GMT) não alterará o horário do sistema para refletir quando a economia estiver em vigor. na sua cidade. por exemplo.: ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime - Asfand Qazi


Como root você tem que executar:

dpkg-reconfigure tzdata

Uma ferramenta baseada em menus deve ser iniciada, permitindo que você altere o fuso horário.


23
2017-08-31 19:41





A maneira mais fácil especialmente para um servidor é listar os fusos horários:

timedatectl list-timezones

E escolha o seu, por exemplo:

timedatectl set-timezone Europe/Athens

É isso aí! :-)


10
2018-02-18 15:52





Para executar um programa com uma configuração de fuso horário diferente, defina TZ variável de ambiente, por ex. corre TZ=Pacific/Kiritimati date para ver que horas são na Ilha Christmas, ou export TZ=Pacific/Kiritimati para que a configuração dure por uma sessão de shell.


4
2017-09-01 00:04





Edite o timezone arquivo no /etc pasta como:

Etc/GMT

Você pode usar o próximo formato:

Region "/" City 

Exemplo de /etc/timezone:

Europe/Athens

ou

Europe/Paris
Europe/London

Você pode experimentar com: dpkg-reconfigure tzdata e verifique cat o arquivo de fuso horário.

Você deve reiniciar ou iniciar novamente um serviço (não o serviço ntp). Eu não sei qual. Se alguém souber por favor, compartilhe conosco. (Testado no Ubuntu 15.10 a mudança é levada em consideração instantaneamente)


3
2017-07-28 12:19





cp -p / usr / share / zoneinfo / EUA / Pacífico / etc / localtime

Eu recomendo CONTRA ligar como mencionado por outros. Se algum script acidentalmente gravar seu arquivo / etc / localtime, ele substitui seu arquivo de fuso horário do Pacífico ... e é um pouco trabalhoso substituí-lo.

Basta copiar o arquivo do Pacífico sobre o arquivo localtime com o comando acima.


1
2017-07-18 20:04



Isso realmente funcionou para mim. Eu acho que há algum bug com o Docker, ansible (?). Tanto o timedatectl quanto o dpkg-reconfigure tzdata falharam para mim. Depois que eu copiei, o fuso horário mudou de EST para PDT. - Sun


Eu uso o script a seguir para perguntar ao usuário qual fuso horário definir e, em seguida, confirme se ele foi definido:

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

Eu chamo isso tz-set.


0
2018-04-26 07:24