Qual é a instrução da linha de comando para alterar o relógio do sistema?


50

Existe algum comando para alterar a data e hora do relógio do sistema?

Por exemplo:

A data e hora atuais é January 1, 1970 22:30:59:980onde 59 e 980 se referem aos segundos e milissegundos, respectivamente

E eu quero mudar para January 2, 1971 23:31:59:990

Existe um comando para isso?


Apenas no caso de alguém estar interessado em alterar também o fuso horário. askubuntu.com/questions/3375/…
nassim

Respostas:


57

Para definir a hora no Ubuntu a partir do terminal, você pode usar o seguinte comando:

data do sudo new_date_time_string

onde new_date_time_stringdeve seguir o formato MMDDhhmmyyyy.ssdescrito abaixo:

  • MM é um mês de dois dígitos, entre 01 e 12
  • DD é um dia de dois dígitos, entre 01 e 31, com as regras regulares para os dias de acordo com o mês e o ano
  • hh é de dois dígitos por hora, usando o período de 24 horas, para que fique entre 00 e 23
  • mm é um minuto de dois dígitos, entre 00 e 59
  • yyyyé o ano; pode ser de dois ou quatro dígitos
  • ssé de dois dígitos. Observe o período .antes do ss.

Fonte: Gerenciar o tempo no Ubuntu através da linha de comando .

Portanto, no seu caso particular, você pode usar:

sudo date 010224311971.59

Ou você pode usar:

sudo date --set="1971-01-02 23:31:59.990"  && date --rfc-3339=ns

que é exatamente o que você pediu.

Fonte: https://serverfault.com/a/338395/181186 .


qual é o formato real da data da string?
Abel Melquiades Callejo

isso significa que a precisão pode ser limitada apenas a segundos ?
Abel Melquiades Callejo

@AbelMelquiadesCallejo Veja minhas novas edições.
Radu Rădeanu

11
Alguém poderia explicar? hhestá entre 00 e 23, mas o OP e esta resposta mostram que está sendo definido como 24.
Carl H

@CarlH Grande captura disso! Veja as novas edições
Abel Melquiades Callejo

16

O caminho fácil:

ntpdate -s ntp.ubuntu.com

Para alterar o fuso horário:

dpkg-reconfigure tzdata

Provavelmente você precisa sudo.


4
Qual servidor NTP vai definir o tempo para janeiro de 1971, eu me pergunto.
Muru

O seu servidor está conectado à Internet? Verifique a documentação oficial em help.ubuntu.com/lts/serverguide/NTP.html
Ninecols

4

Você pode usar o datecomando para alterar a hora e precisará de sudopermissão para fazê-lo; um exemplo para definir a data para 27 de junho de 2014 e a hora para 1:17 é:

sudo date --set "27 Jun 2014 1:17:00"

3

Desde que o systemd foi introduzido no Ubuntu, a maneira correta é:

# timedatectl set-time "RFC 3339-compliant string"

por exemplo

# timedatectl set-time "2002-10-02T10:00:00-05:00"
# timedatectl set-time "10:35"
# timedatectl set-time "+2 hours"

Isso também funciona com sudo date --set="+2 hours", por exemplo , o que é exatamente o que eu precisava.
Emile Vrijdags

0

Versões curtas para definir apenas data ou hora:

Para definir a data (definirá a hora para 0: 0: 0):

date +%Y%m%d -s "19710102"

Para definir apenas a hora:

date +%T -s "23:31:59"

Você pode adicionar o ".990" desejado aos segundos.

Leia a página do manual para obter mais opções e formatos relacionados ao comando date:

man date

Nota: você também pode verificar ou ajustar o relógio do hardware. Leia aqui .


-3
sudo date --set="Mon Feb 16 08:49:56 IST 2015"

Essa seria a afirmação correta no UBUNTU 14.04.


11
Para todos no fuso horário do IST apenas? A outra resposta não funciona para você?
Xen2050

A pergunta não requer alteração do fuso horário.
Abel Melquiades Callejo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.