Formatear fecha y hora en Bash
-
Usando el
printf
incorporado para dar formato a la fecha y la hora en Bash -
Uso del comando
date
Formato de fecha y hora en Bash
Para formatear una fecha o una hora en un script de shell de Linux, use el comando de fecha estándar.
El mismo comando se puede usar con el script de shell. El comando de fecha en Linux muestra y cambia la fecha y la hora del sistema.
Los usuarios también pueden usar este comando para imprimir la hora en varios formatos y calcular fechas futuras y anteriores.
Usando el printf
incorporado para dar formato a la fecha y la hora en Bash
Es mejor usar el formateador de fecha incorporado printf
en lugar del formateador de fecha externo en una versión de bash mayor o igual a 4.2
.
Para entrar en formato YYYY-MM-DD
:
$ printf '%(%Y-%m-%d)T\n' -1
-1
denota la hora actual.
Producción :
2021-12-21
También podemos escribir el comando anterior como:
$ printf '%(%F)T\n' -1
Producción :
2021-12-21
Podemos guardar la hora actual usando -v
y especificando el nombre de la variable. Para guardar la hora actual en una variable cdate
e imprimirla, podemos hacer lo siguiente:
$ printf -v cdate '%(%F)T' -1
$ echo $cdate
El comando anterior capturó la fecha actual como una variable y la almacenó en cdate
, y echo
imprimirá el valor de la variable.
Producción :
2021-12-21
Uso del comando date
Formato de fecha y hora en Bash
Podemos usar el comando date
para versiones de bash inferiores a 4.2
.
Para mostrar la fecha actual en formato MM-DD-AA
:
$ date +"%m-%d-%y"
El símbolo +
indica una cadena de formato definida por el usuario que especifica cómo se debe mostrar la fecha y la hora.
Producción :
12-21-21
Para convertir el año a cuatro dígitos, cambie y
por Y
.
$ date +"%m-%d-%Y"
Producción :
12-21-2021
También podemos hacer lo siguiente para imprimir la fecha actual en formato YYYY-MM-DD
.
$ date -I
Producción :
2021-12-21
Para mostrar solo la hora:
$ date +"%T"
Producción :
13:01:00
Para mostrar la hora en formato HH:MM
:
$ date +"%H-%M"
Producción :
13-02
Para almacenar la fecha actual en la variable de shell, podemos hacer lo siguiente:
$ cdate=$(date +"%m-%d-%Y")
$ echo $cdate
Hemos capturado la fecha actual y la hemos almacenado en cdate
. echo
imprime el valor cdate
.
Producción :
12-21-2021
Para agregar N
días en la date
, usamos el siguiente comando:
date -d="YYYY-MM-DD+N days"
Veamos un ejemplo.
$ date -d "2021-12-21+20 days"
Producción :
Mon 10 Jan 2022 12:00:00 AM