¿Cómo adelantar/retroceder la hora del reloj del sistema?

¿Cómo adelantar/retroceder la hora del reloj del sistema?

Conozco comandos para configurar una hora y/o fecha específicas, pero no puedo encontrar aquellos que muevan la hora en relación con la hora actual.

¿Cuáles son los comandos para adelantar/retroceder el tiempo x segundos/minutos/horas? (¿Y posiblemente también días/meses/años?)

Respuesta1

El comando para configurar la hora del sistema esdate. Debes ser root para configurar la hora del sistema. dateestablece el tiempo en el tiempo dado, no en una cantidad relativa del tiempo actual, porque ese último comportamiento sería bastante inútil. Puede crear un comando que modifique la hora actual en una cantidad relativa haciendo un cálculo en la salida datey enviándolo a date, por ejemplo (en Linux no integrado)

date $(date +%m%d%H%M%Y.%S -d '1 hour ago')

Tenga en cuenta que si está ejecutando un sistema de cronometraje como NTP, cambiar el reloj de esta manera lo confundirá. Detenlo primero.

La ejecución dateestablece la hora del sistema, no el reloj del hardware. En Linux, ejecutehwclock --systohccopiar la hora del sistema al reloj del hardware; esto se hace automáticamente en un apagado limpio.

Si desea ver la hora en una zona horaria diferente, olvídese de todo esto y configure la zona horaria deseada. En Linux, ejecutetzselectpara configurar la zona horaria del sistema. Para ejecutar un programa en una zona horaria diferente, configure la TZvariable de entorno, por ejemplo

export TZ=Asia/Tokyo
emacs

Si desea ejecutar un programa y hacerle creer que la hora es diferente de la que realmente es, ejecútelo bajo el programa.faketime.

faketime '1 hour ago' date

Respuesta2

También puede utilizar el siguiente formato para obtener la cantidad de tiempo adelantada a la hora actual:

$ date --date='1 month'
Sun Sep 17 15:01:11 CST 2017
$ date --date='1 month'
Sun Sep 17 15:01:15 CST 2017
$ date --date='1 month 2 hours'
Sun Sep 17 17:01:23 CST 2017
$ date --date='1 month 2 hours 3 minutes'
Sun Sep 17 17:04:30 CST 2017

También puedes usar agopor un tiempo antes de la fecha actual:

$ date
Fri Aug 18 16:14:41 CST 2017
$ date --date='1 month 2 days ago'
Sat Sep 16 16:14:43 CST 2017

Puedes usar la --setopción paraconfiguraciónhora pero agregando un +signo antes del número de horas, minutos, etc, que desea agregar a la fecha real:

$ date
Thu Aug 17 15:07:00 CST 2017
$ date --set='+1 day +1 hour'
Fri Aug 18 16:07:24 CST 2017
$ date
Fri Aug 18 16:07:31 CST 2017
$ date --set='+1 month 3 days +1 hour'
Thu Sep 21 17:07:42 CST 2017

Espero que esto sea útil.

Respuesta3

date -Ins -s $(date -Ins -d '-1 hour')

Respuesta4

Si no recuerdo mal, en UNIX SVR4, había una opción "-a" para el comando "fecha", que permitiría al superusuario ajustar el reloj hacia adelante o hacia atrás una cantidad de segundos.

información relacionada