Ich habe einen UNIX-Zeitstempel und möchte ein formatiertes Datum (wie die Ausgabe von date
) erhalten, das diesem Zeitstempel entspricht.
Meine bisherigen Versuche:
$ date +%s
1282367908
$ date -d 1282367908
date: invalid date `1282367908'
$ date -d +1282367908
date: invalid date `+1282367908'
$ date +%s -d +1282367908
date: invalid date `+1282367908'
Ich möchte in der Lage sein, eine Ausgabe wie folgt zu erhalten:
$ TZ=UTC somecommand 1282368345
Sat Aug 21 05:25:45 UTC 2010
command-line
Umang
quelle
quelle
info coreutils date
etwas genauer lesen sollen .date -r 1447264553943
ergibtWed Dec 28 01:39:03 BRST 47831
, wann es tatsächlich ist11/11/2015, 3:55:53 PM GMT-2:00
.Nach einigem googeln habe ich einen Weg gefunden, dies nur mit dem
date
Befehl zu tun :quelle
date -d @xxx
wurde erst 2005 mit coreutils 5.3 hinzugefügt. So mussten Sie das vorher machen.Dieser Perl-Einzeiler macht es:
quelle
Mit Shell Builtins:
zsh
(4.1.1 (2003) und höher):ksh93
(ksh93i
(2000) und höher):bash
(4.2 (2010) und höher):Ersetzen Sie in all diesen Fällen
%c
dasstrftime()
gewünschte Format.quelle
bash
printf
Lösung?printf
in gnu.org/software/bash/manual/bashref.html#Bash-Builtins gefunden .Auf osx in UTC zu haben
quelle
Ein weiteres gutes Beispiel für das reiche Erbe des modernen Unix. Dies ist in der Tat unter den meisten BSD-Varianten möglich:
(BTW Ihr Beispiel scheint um eine Sekunde aus zu sein)
quelle
Beantworten Sie eine alte Frage, aber ich denke, dass dies eine Verbesserung sein könnte, wenn jemand anderes danach sucht. Diese Bash-Funktion funktioniert sowohl unter Linux als auch unter OS X. Ich habe sie auf keinem anderen BSD-System getestet. Übergeben Sie die Epochenzeit als Argument für diese Funktion und es wird das RFC-3339-Zeitformat gedruckt.
quelle