#root - rootuser.eu

Ich bin root, ich darf das!

Unix-Timestamp umrechnen

2012-06-26, getagged als bash, cli, linux
Immer wieder kommt es vor, dass ich einen Unix-Timestamp (Anzahl Sekunden seit dem 01.Januar 1970, 0:00 Uhr) in eine lesbare Zeit umwandeln muss. Zwar gibt es dazu auch Webseiten und Browser-Addons die das können, aber einen Befehl direkt auf der Konsole zu haben, ist meistens einfach praktischer.

Da mir kein Befehl bekannt ist, der das direkt bewerkstelligen kann, habe ich mir für die Bash zwei kleine Funktionen gebaut, eine um vom Unix-Timestamp zur lesbaren Zeit umzurechnen und eine für die umgekehrte Richtung:
# Unix-Timestamp to readable time
function uts2rt() { 
  echo $@ | awk '{print strftime("%X, %x", $1)}'
}

# readable time to Unix-Timestamp
function rt2uts() {
  date -d "$(echo $@)" "+%s" || echo " please type date as format YYYY-MM-DD HH:MM:SS"
}
Für die erste Funktion ist allerdings die erweiterte awk-Variante der Free Software Foundation mit dem Namen gawk erforderlich. Diese ist aber mit aptitude install gawk schnell installiert.
Bei letzter Funktion hat es sich als große Hilfe erwiesen, das definierte Format im Fehlerfall anzuzeigen.

Und so sieht das dann aus, wenn man diese Funktionen auf der Konsole nutzt:
root@host:~# uts2rt 1234567890
00:31:30, 14.02.2009

root@host:~# rt2uts 2008-06-17 15:30:49
1213709449