Aritmética de tiempos usando date

Hola compañeros de la shell,

En esta corta entrada ampliaremos lo comentado en la entrada Fechas en GNU/Linux y Solaris centrándonos en realizar operaciones básicas de conversión de fechas en segundos y viceversa para poder tomar tiempos en nuestros scripts con facilidad.

Conversión segundos a formato (%H:%M:%S):

$date -d@$3661 +%H:%M:%S
01:11:01

Conversión formato (%Y-%m-%d %H:%M:%S) a segundos:

$date --date "2022-05-07 21:22:55" +%s
1651951375

A continuación snippet de código para obtener tiempos de ejecución:

INICIO=`date +'%Y-%m-%d %H:%M:%S'`

# Comienza la ejecución del programa (ejemplo, sleep de 11 segundos)

sleep 11

# Fin de la ejecución del programa (ejemplo, sleep de 11 segundos)

FIN=`date +'%Y-%m-%d %H:%M:%S'`
SEGUNDOS_INICIO=`date --date "$INICIO" +%s`
SEGUNDOS_FIN=`date --date "$FIN" +%s`
TIEMPO_TOTAL_SEGUNDOS=`echo "$SEGUNDOS_FIN-$SEGUNDOS_INICIO" | bc`
TIEMPO_TOTAL_H_M_S=`date -d@${TIEMPO_TOTAL_SEGUNDOS} -u +%H:%M:%S`
echo $TIEMPO_TOTAL_H_M_S
00:00:11

Espero que os sirva.

Nos vemos al otro lado de la pantalla negra.

P.D.: Thx to P.F.S.

Esta entrada fue publicada en Sin categoría. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *