GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash:Berechnen Sie die zwischen zwei Zeitstempeln verstrichene Zeit

Dadurch erhalten Sie das Datum in Sekunden (seit der UNIX-Epoche)

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

Und das gibt Ihnen das Datum als lesbaren String aus einer Anzahl von Sekunden

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

Alles, was Sie also brauchen, ist, Ihren Datums-/Zeitstempel in ein Format umzuwandeln, das GNU date unterstützt verstehen, den Unterschied mathematisch bestimmen und das Ergebnis ausgeben können

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"

Wir haben hier keine Zeitzoneninformationen bereitgestellt, daher wird von der lokalen Zeitzone ausgegangen. Ihre Werte für die Sekunden von datetime werden wahrscheinlich anders sein als meine. (Wenn Ihre Werte UTC sind, können Sie date --utc verwenden .)


Mit datediff geht das ganz einfach Befehl in dateutils bereitgestellt Paket.

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

Linux
  1. Holen Sie sich die aktuelle Zeit in Sekunden seit der Epoche auf Linux, Bash

  2. Druckdatum für den Montag der aktuellen Woche (in bash)

  3. Wie erhalte ich die Differenz zwischen zwei Daten unter bash

  4. Wie bekomme ich Datum/Uhrzeit der Dateierstellung in Bash/Debian?

  5. Bash-Skript zur Berechnung der verstrichenen Zeit

So erhalten Sie das aktuelle Datum und die aktuelle Uhrzeit in Python

Der Unterschied zwischen den Bash-Operatoren [[ Vs [ Vs ( Vs ((?

Wie extrahiert man Protokolle zwischen zwei Zeitstempeln?

Zeitanzeige zeigt Datum/Uhrzeit nicht an?

Wie rufen Sie die aktuelle Zeit auf einem Server ab?

Timen Sie die Ausführungszeit mehrerer Befehle