Sonntag, 2. November 2008
Sekunden umrechnen in Stunden-Minuten-Sekunden
Eine Angabe in Sekunden ist genau, aber schwer lesbar. Wieviel Stunden sind z.B. 7426387 Sekunden?
sek=7426387; echo "$((sek /3600)) std $((sek % 3600 /60)) min $((sek % 60)) s"
Ergebnis: 2062 std 53 min 7 s
Datum und Timestamps
Gelegentlich brauche ich einen Unix Timestamp als "normales" Datum.
Date kann ja ein Datum auch als Timestamp anzeigen (mit der Option +%s). Die umgekehrte Richtung, also einen Timestamp in den Datumstring umwandeln, geht mit date aber nur eingeschränkt (nur UTC). Brauche ich einen Timestamp als Datum, verwende ich (g)awk.
echo 1186888000 | gawk '{print strftime("%c",$1)}'
Ergebnis: So 12 Aug 2007 05:06:40 CEST
echo 1186888000 | gawk '{print strftime("%A, %d %B %Y %H:%M Uhr",$1)}'
Ergebnis: Sonntag, 12 August 2007 05:06 UhrMehr Varianten zur Datumsformatierung mit strftime() liefert, na klar, man strftime (die C-Funktion).
UPDATE: doch, doch date kann's auch abseits von UTC:
date -d @1234567890
Ergebnis: Sa 14. Feb 00:31:30 CET 2009Und das ist korrekt incl. Zeitzone!
Der Trick liegt im Voranstellen von @, der andere mögliche Aufruf mit Sekunden:
date -d '19700101 1234567890 sec' #falsch!
...gibt nämlich ein falsches Ergebnis, weil UTC mit falschem Zeitzonenkürzel hintendran.Schade, dass davon rein gar nichts in der manpage von date steht, ich habe die Methode zufällig in den Kommentaren einer Online-Zeitung gefunden.
(Seite 1 von 1, insgesamt 2 Einträge)