Usa date -s
:
date -s '2014-12-25 12:34:56'
Ejecuta eso como root o bajo sudo
. Cambiar solo uno del año/mes/día es más complicado e implicará repetir bits de la fecha actual. También hay herramientas de fecha GUI integradas en los principales entornos de escritorio, a las que generalmente se accede a través del reloj.
Para cambiar solo una parte del tiempo, puede usar la sustitución de comandos en la cadena de fecha:
date -s "2014-12-25 $(date +%H:%M:%S)"
cambiará la fecha, pero mantendrá la hora. Ver man date
para formatear detalles para construir otras combinaciones:los componentes individuales son %Y
, %m
, %d
, %H
, %M
y %S
.
Hora del sistema
Puedes usar date
para configurar la fecha del sistema. La implementación GNU de date
(como se encuentra en la mayoría de los sistemas basados en Linux no integrados) acepta muchos formatos diferentes para establecer la hora, aquí algunos ejemplos:
establecer solo el año:
date -s 'next year'
date -s 'last year'
configurar solo el mes:
date -s 'last month'
date -s 'next month'
establecer solo el día:
date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'
poner todo junto:
date -s '2009-02-13 11:31:30' #that's a magical timestamp
Tiempo de hardware
Ahora la hora del sistema está configurada, pero es posible que desee sincronizarla con el reloj del hardware:
Utilice --show
para imprimir la hora del hardware:
hwclock --show
Puede configurar el reloj del hardware a la hora actual del sistema:
hwclock --systohc
O la hora del sistema al reloj del hardware
hwclock --hctosys
El comando a para cambiar la fecha del sistema es date
.
Hay dos formas de llamar al comando de fecha (en Linux):
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Fácil
La forma más fácil es usar date -s
ya que permite el uso de simple pariente fechas
$ date -s yesterday; date
date: cannot set date: Operation not permitted
Sat Jan 5 07:21:07 EST 2019
Sun Jan 6 07:21:07 EST 2019
La fecha no cambió porque se ejecutó con un usuario limitado $
. Si realmente desea cambiar la fecha, use la raíz (#
) o sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
Entonces, cambiar cualquier parte de un pariente la fecha es tan fácil como nombrarla:
$ date -s "5 years ago"
Mon Jan 6 08:26:26 EST 2014
$ date -s "+6 months"
Sat Jul 6 08:28:39 EDT 2019
$ date -s "+3 hours -13 minutes"
Sun Jan 6 11:16:59 AST 2019
Las fechas absolutas son un poco más complejas ya que necesitan más detalles:
$ date -s "2001-07-23 10:11:12"
O bien, puede usar el comando de fecha dos veces:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
reemplaza cualquiera de los %
por un valor válido y se establecerá la fecha (solo como root).
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
directo
El segundo formulario de llamada de cita se utiliza para directamente cambiar la fecha del sistema.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Entonces:
date 11230812 # MMDDhhmm
Fijará la fecha para el 23 de noviembre a las 08h y 12min.
BSD tiene un comando similar pero con un formato diferente ([[[[[cc]yy]mm]dd]HH]MM[.ss]).
Prueba date
como usuario limitado para ver lo que haría (sin cambiar nada):
$ date 11230812
date: cannot set date: Operation not permitted
Sat Nov 23 08:12:00 EST 2019
O, si realmente desea cambiar la fecha, como root:
# date 11230812
# date
Sat Nov 23 08:12:00 EST 2019
Tenga en cuenta que los servicios como NTP o chrony se verán afectados. Y, si se reinicia, se restablecerá la fecha a la real.
Agregue un YY para establecer el año:
$ date 1123081222
date: cannot set date: Operation not permitted
Wed Nov 23 08:12:00 EST 2022
O un CCYY para establecer el año y siglo:
$ date 112308121982
date: cannot set date: Operation not permitted
Tue Nov 23 08:12:00 EST 1982