¿Cuál es la instrucción de línea de comando para cambiar el reloj del sistema?

50

¿Existe tal comando para cambiar la fecha y hora del reloj del sistema?

Por ejemplo:

La fecha y hora actuales es January 1, 1970 22:30:59:980donde 59 y 980 se refieren a los segundos y milisegundos respectivamente

Y quiero cambiarlo a January 2, 1971 23:31:59:990

¿Hay un comando para esto?

Abel Melquiades Callejo
fuente
En caso de que alguien esté interesado en cambiar también la zona horaria. askubuntu.com/questions/3375/…
nassim

Respuestas:

57

Para configurar el tiempo en Ubuntu desde la terminal, puede usar el siguiente comando:

sudo date new_date_time_string

donde new_date_time_stringtiene que seguir el formato MMDDhhmmyyyy.ssque se describe a continuación:

  • MM es un mes de dos dígitos, entre 01 y 12
  • DD es un día de dos dígitos, entre el 01 y el 31, con las reglas regulares para los días de acuerdo con el mes y el año de aplicación
  • hh es una hora de dos dígitos, usando el período de 24 horas, por lo que es entre 00 y 23
  • mm es un minuto de dos dígitos, entre 00 y 59
  • yyyyes el año puede ser de dos o cuatro dígitos
  • ssson dos dígitos segundos. Observe el período .anterior al ss.

Fuente: Administre el tiempo en Ubuntu a través de la línea de comandos .

Entonces, en su caso particular, puede usar:

sudo date 010224311971.59

O puedes usar:

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

que es exactamente lo que preguntaste

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

Radu Rădeanu
fuente
¿Cuál es el formato real de la fecha de la cadena?
Abel Melquiades Callejo
¿eso significa que la precisión solo puede limitarse a segundos ?
Abel Melquiades Callejo
@AbelMelquiadesStreetjo Vea mis nuevas ediciones.
Radu Rădeanu
1
¿Alguien podría explicar? hhes entre 00 y 23, pero OP y esta respuesta muestran que está configurado en 24.
Carl H
@CarlH ¡Gran captura de eso! Vea las nuevas ediciones
Abel Melquiades Callejo
16

La manera fácil:

ntpdate -s ntp.ubuntu.com

Para cambiar la zona horaria:

dpkg-reconfigure tzdata

Probablemente lo necesites sudo.

Ninecoles
fuente
44
Me pregunto qué servidor NTP establecerá la hora de enero de 1971.
muru
¿Su servidor está conectado a internet? Consulte la documentación oficial en help.ubuntu.com/lts/serverguide/NTP.html
Ninecols
4

Puede usar el datecomando para cambiar la hora y necesitará sudopermiso para hacerlo; Un ejemplo para establecer la fecha al 27 de junio de 2014 y la hora a la 1:17 AM es:

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

Desde que systemd se introdujo en Ubuntu, la forma correcta es:

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

p.ej

# timedatectl set-time "2002-10-02T10:00:00-05:00"
# timedatectl set-time "10:35"
# timedatectl set-time "+2 hours"
jojman
fuente
Esto también funciona con sudo date --set="+2 hours", por ejemplo , que es exactamente lo que necesitaba.
Emile Vrijdags el
0

Versiones cortas para configurar solo la fecha o la hora:

Para establecer la fecha (establecerá la hora en 0: 0: 0):

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

Para configurar la hora solamente:

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

Puede agregar el ".990" deseado a los segundos.

Lea la página de manual para obtener más opciones y formatos sobre el comando de fecha:

man date

Nota: es posible que también desee verificar o configurar el reloj de hardware. Lea sobre esto aquí .

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

Esa sería una declaración correcta en UBUNTU 14.04.

Soumya Kanti Naskar
fuente
1
¿Solo para todos en la zona horaria IST? ¿La otra respuesta no te funciona?
Xen2050
La pregunta no requiere cambiar la zona horaria.
Abel Melquiades Callejo