Formatear fecha y hora en Bash

Nilesh Katuwal 22 marzo 2022
  1. Usando el printf incorporado para dar formato a la fecha y la hora en Bash
  2. Uso del comando date Formato de fecha y hora en Bash
Formatear 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 

Artículo relacionado - Bash DateTime