PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SHELL: Datum als String addieren/subtrahieren? Einfach?



qeldroma
20-01-2006, 13:49
Hallo zusammen,

wie kann ich einfachst zwei als UTC formatierte Uhrzeiten mit Datum verrechnen? Gibt es dazu schon "Hausmittel" in der Bash?

Schwierigkeit sit, das ich sie nur als String zur Verfügung habe, also "Fr Jan 20 13:23:28 UTC 2006".

Ich möchte Logging-Ergebnisse bezüglich der Dauer erfassen, das heißt, ich muß solche Strings subtrahieren um als Ergebnis dann etwas in der Form "hh:mm:ss" zu bekommen...

Gibt es da etwas vorgefertigtes, oder muß ich mir mühsam was zusammenbasteln?

Grüße, Florian

peschmae
20-01-2006, 14:07
Hallo. Damit date das Datum frisst muss es ein bestimmtes Format haben. Scheint du hast mit dem was du da hast fast das genau richtige.



peschmae@sid:~$ DATUM="Fr Jan 20 13:23:28 UTC 2006"
peschmae@sid:~$ date -d "$DATUM" +%s
date: invalid date „Fr Jan 20 13:23:28 UTC 2006“
peschmae@sid:~$ DATUM="$(echo $DATUM | sed 's#.* ##')"
peschmae@sid:~$ date -d "$DATUM" +%s
1137783960
peschmae@sid:~$


Also das "Fr" am Anfang wegschneiden und schon gehts. Obiger Befehl gibt dir das Datum in Form von Sekunden seit dem 1.1.1970.
Das kannst du dann natürlich problemlos subtrahieren.

Fürs Zurückwandeln weiss ich jetzt gerade auch nicht wie das mit date ginge und ob überhaupt. Sonst machst dus halt mit Modulo bzw. Division. (Sekunden / (60*60*24) = Tage, etc)

MfG Peschmä