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

221

Eu tenho uma máquina virtual definida como PST que alguns colegas têm em diferentes fusos horários.

Se eu quiser alterar o fuso horário para EST e GMT , o que preciso fazer?

manyxcxi
fonte

Respostas:

288

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, pois não requer interação do usuário , comparado com a outra resposta fornecida com base em dpkg-reconfigure tzdata.

Jossef Harush
fonte
1
Não sou fã de comentários com +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 alterasse o fuso horário, em vez de querer lançar algum programa de menu ou GUI (não sei o que tzdatafaz, como funciona, mas não preciso disso) comando de uma linha). Obrigado!
Phil Ryan
funciona como um encanto;)
user332660
Curiosamente, está fazendo algo um pouco diferente de tzdata. Eu tive um problema com o tempo do Java ser diferente do tempo do sistema após aplicar um patch. Tzdata não funcionou para corrigir o problema, mas isso funcionou.
Daniel Bower
1
isso não funcionou para mim; no entanto, o dpkg-reconfigurefez o truque.
Antti Haapala
14.04.4 servidor ubuntu
Antti Haapala
40

Como root, você deve executar:

dpkg-reconfigure tzdata

Uma ferramenta baseada em menus deve ser iniciada, permitindo alterar o fuso horário.

maxschlepzig
fonte
32

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
pm_labs
fonte
8
Eu acho que seria melhor vincular um dos arquivos da cidade em vez de GMT ou EST, pois eles acompanharão o horário de verão, ao passo que vincular (por exemplo) o GMT não alterará o horário do sistema para refletir quando o horário de verão está em vigor na sua cidade. por exemplo:ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime
Asfand Qazi,
este é o melhor
Hasan Tıngır 17/10/1918
16

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í! , :-)

Dimitrios
fonte
6

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

Gilles
fonte
6

Edite o timezonearquivo na /etcpasta 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 o: dpkg-reconfigure tzdata e verificar o arquivo do 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. (Testada no Ubuntu 15.10, a alteração é levada em consideração instantaneamente)

chasapis.christos
fonte
4
cp -p /usr/share/zoneinfo/US/Pacific /etc/localtime

Eu recomendo CONTRA vincular como mencionado por outros. Se algum script acidentalmente /etc/localtimegravar seu arquivo, ele substituirá o arquivo de fuso horário do Pacífico ... e será um pouco trabalhoso substituí-lo.

Basta copiar o arquivo do Pacífico sobre o arquivo de horário local com o comando acima.

J Roysdon
fonte
Isso realmente funcionou para mim. Eu acho que há algum bug no Docker, ansible (?). O timedatectl e o dpkg-reconfigure tzdata falharam para mim. Depois de copiar, o fuso horário mudou de EST para PDT.
Sun
2

Eu uso o seguinte script para perguntar ao usuário qual fuso horário definir e, em seguida, confirmo que ele foi realmente definido:

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

Eu chamo isso tz-set.

Tom Hale
fonte
0

Como root, você deve executar:

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

Stefan Sebastian
fonte
Por favor, explique pelo menos como esse comando funciona para alterar o fuso horário.
Parto 19/03
0

Isso funcionou para mim no GCP Ubuntu 14 via SSH

  1. sudo su
  2. cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
  3. Reinicie o servidor
  4. Feito
Vignesh Chinnaiyan
fonte