GNU/Linux >> Tutoriels Linux >  >> Linux

Bash :calcule le temps écoulé entre deux horodatages

Cela vous donnera la date en secondes (depuis l'époque UNIX)

date --date '2017-08-17 04:00:01' +%s    # "1502938801"

Et cela vous donnera la date sous forme de chaîne lisible à partir d'un certain nombre de secondes

date --date '@1502938801'    # "17 Aug 2017 04:00:01"

Il suffit donc de convertir votre date/horodatage dans un format que GNU date peut comprendre, utiliser les mathématiques pour déterminer la différence et afficher le résultat

datetime1=20170817040001
datetime2=20160312000101

seconds1=$(date --date "$(echo "$datetime1" | sed -nr 's/(....)(..)(..)(..)(..)(..)/\1-\2-\3 \4:\5:\6/p')" +%s)
seconds2=$(date --date "$(echo "$datetime2" | sed -nr 's/(....)(..)(..)(..)(..)(..)/\1-\2-\3 \4:\5:\6/p')" +%s)

delta=$((seconds1 - seconds2))
echo "$delta seconds"    # "45197940 seconds"

Nous n'avons pas fourni d'informations sur le fuseau horaire ici, il suppose donc le fuseau horaire local. Vos valeurs pour les secondes à partir de la date et de l'heure seront probablement différentes des miennes. (Si vos valeurs sont UTC, vous pouvez utiliser date --utc .)


C'est facile avec datediff commande fournie dans dateutils forfait.

ddiff -i '%Y%m%d%H%M%S' 20170817040001 20160312000101

Linux
  1. Définir la date, l'heure et le fuseau horaire sur un serveur Linux

  2. Obtenez l'heure actuelle en secondes depuis l'époque sur Linux, Bash

  3. Quelle est la différence entre #!/usr/bin/env bash et #!/usr/bin/bash ?

  4. Rechercher des fichiers créés entre une plage de dates

  5. Convertir une date ISO en secondes depuis l'époque dans Linux bash

Deux grandes utilisations de la commande cp :Raccourcis Bash

Comment obtenir la date et l'heure actuelles en Python

L'indicateur de temps n'affiche pas la date/l'heure ?

Script bash pour calculer le temps écoulé

Comment récupérer l'heure actuelle sur un serveur ?

Chronométrer le temps d'exécution de plusieurs commandes