J'ai un horodatage UNIX et j'aimerais obtenir une date formatée (comme la sortie de date
) correspondant à cet horodatage.
Mes tentatives jusqu'ici:
$ 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'
J'aimerais pouvoir obtenir une sortie comme:
$ TZ=UTC somecommand 1282368345
Sat Aug 21 05:25:45 UTC 2010
command-line
Umang
la source
la source
info coreutils date
un peu plus attentivement.date -r 1447264553943
résultatsWed Dec 28 01:39:03 BRST 47831
, quand c'est en fait11/11/2015, 3:55:53 PM GMT-2:00
.Après quelques recherches sur Google, j'ai trouvé le moyen de le faire avec la
date
commande uniquement:la source
date -d @xxx
n'a pas été ajouté avant la version 5.3 de coreutils en 2005. C'est comme ça que vous deviez le faire avant.Ce perl one-liner le fera:
la source
Avec shell intégré:
zsh
(4.1.1 (2003) et ci-dessus):ksh93
(ksh93i
(2000) et ci-dessus):bash
(4.2 (2010) et ci-dessus):Dans tous ceux-ci, remplacez
%c
par lestrftime()
format que vous voulez.la source
bash
printf
solution?printf
dans gnu.org/software/bash/manual/bashref.html#Bash-Builtins .Sur osx, avoir en UTC
la source
Un autre bel exemple du riche héritage d'Unix moderne. Ceci est en effet possible dans la plupart des variantes de BSD:
(BTW votre exemple semble être décalé d'une seconde)
la source
Répondez à une vieille question, mais je pense que cela pourrait être une amélioration si quelqu'un d'autre le cherchait. Cette fonction Bash fonctionne à la fois sous Linux et OS X. Je n'ai testé sur aucun autre système BSD. Passez l'heure comme argument de cette fonction et le format d'heure RFC-3339 sera imprimé.
la source