Eu tenho um registro de data e hora do UNIX e gostaria de obter uma data formatada (como a saída de date
) correspondente a esse registro de data e hora.
Minhas tentativas até agora:
$ 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'
Eu gostaria de conseguir resultados como:
$ TZ=UTC somecommand 1282368345
Sat Aug 21 05:25:45 UTC 2010
command-line
Umang
fonte
fonte
info coreutils date
um pouco mais cuidadosamente.date -r 1447264553943
resultaWed Dec 28 01:39:03 BRST 47831
quando é realmente11/11/2015, 3:55:53 PM GMT-2:00
.Depois de pesquisar no Google, encontrei uma maneira de fazer isso apenas com o
date
comando:fonte
date -d @xxx
não foi adicionado até o coreutils 5.3 em 2005. Foi assim que você teve que fazer isso antes disso.Este one-liner perl fará isso:
fonte
Com shell embutido:
zsh
(4.1.1 (2003) e acima):ksh93
(ksh93i
(2000) e acima):bash
(4.2 (2010) e acima):Em todos esses, substitua
%c
pelostrftime()
formato desejado.fonte
bash
printf
solução?printf
em gnu.org/software/bash/manual/bashref.html#Bash-Builtins .No osx, para ter no UTC
fonte
Outro exemplo interessante da rica herança do Unix moderno. Isso é realmente possível na maioria das variantes do BSD:
(BTW, seu exemplo parece estar errado em um segundo)
fonte
Responda a uma pergunta antiga, mas acho que isso pode ser uma melhoria se alguém procurar por isso. Essa função do Bash funciona no Linux e no OS X. Não testei em nenhum outro sistema BSD. Passe a hora da época como argumento para esta função e ela imprimirá o formato de hora RFC-3339.
fonte