Al usar distribuciones Linux tenemos a nuestra disposición cientos de comandos que nos ayudan a obtener información precisa sobre servicios, procesos, componentes del sistema y muchas cosas más, todo esto enfocado en una correcta gestión administrativa y de soporte.
Uno de estos comandos es el date el cual se usa para obtener la fecha y hora actuales del sistema seleccionado:
Pero más que esto, este comando nos brinda la posibilidad de ver o calcular una fecha en un formato que especifiquemos o el usuario root podrá usarlo para configurar el reloj del sistema operativo en caso que sea necesario.
Solvetic hará un estudio sobre este comando y sus formas de uso en Linux.
1. Uso básico comando date en Linux
Podemos ver en la imagen superior que cuando se ejecuta solo el comando date sin ningún parámetro adicional, este desplegará la fecha y hora actual del sistema, incluyendo el día de la semana, el mes, la hora, la zona horaria y el año.
Si deseamos desplegar los resultados en una fecha específica, será necesario hacer uso del parámetro -d e ingresando la respectiva fecha:
date -d "2018-01-15"
Este comando date posee múltiples opciones a nivel de formato de visualización. Por ejemplo, será posible indicar la fecha con la cadena de formato precediéndola con un signo más de la siguiente forma:
date +"Week number: %V Year: %y"Esto dará como resultado el numero de semana actual del año en curso ya que % V es la opción de formato para mostrar el número de semana actual, y% y representa los últimos dos dígitos del año.
2. Opciones de formatos en date Linux
Algunas de las opciones de formato más comunes al usar date son:
%a
%A
%b
%B
%c
%d
%j
%F
%M
%N
%R
%W
%U
Para ver las diversas opciones podemos ejecutar el siguiente comando:
date –help
3. Editar la zona horaria actual con comando date Linux
Por defecto, el comando date hace uso de la zona horaria definida en el directorio /etc/localtime. La variable de entorno TZ (TimeZone) se puede usar para anular este comportamiento, podremos comprobar el TZ usando el siguiente comando:
TZ=GMT date
Todas las zonas de tiempo validas las encontramos en el directorio /usr/share/zoneinfo/:
Algunos ejemplos de como podemos usar el comando date definiendo determinados tiempos son:
date -d now
date -d today
date -d yesterday
date -d tomorrow
date -d sunday
date -d last-sunday
- last-week
- next-week
- last-month
- next-month
- last-year
- next-year
4. Uso de segundos con comando date Linux
Al usar el comando date nos permite realizar otro tipo de análisis, por ejemplo, podemos tomar el comando date para convertir una fecha u hora determinada a la hora de la época de Unix (segundos desde 00:00:00, 1 de enero de 1970) y viceversa, e este caso, ejecutaremos lo siguiente con lo cual veremos los segundos de epoch a la hora actual:
date +%sEl resultado será el siguiente:
Usando este mismo formato podremos obtener los segundos de una fecha determinada, por ejemplo:
date -d "2017-12-31" +"%s"
5. Cómo convertir epoch en una fecha Linux
Recordemos que epoch es el formato de tiempo de UNIX.
Con date es posible convertir epoch en una fecha especifica haciendo uso de alguno de los siguientes comandos:
date -d "UTC 2000-01-15 123456897 secs" date -d @123456897
Asimismo, tenemos la posibilidad de saber el día exacto de alguna fecha con la siguiente línea:
date -d "2000-01-15" +"%A"
Establecer una fecha de forma manual y usar el comando date en Scripts y comandos En el momento en que sea necesario establecer una fecha u hora diferentes a la actual, basta con ejecutar la siguiente sintaxis:
date --set="AAAAMMDD HH:SS"Es posible asignar el resultado del comando date a una variable de shell y luego usarla más adelante en diversos scripts, por ejemplo, podemos ejecutar lo siguiente:
STARTTIME=`date` echo $STARTTIME sleep 7 echo $STARTTIME
Podemos ver como el comando date nos permite realizar acciones mucho mas allá de simplemente ver la fecha y hora actuales.