Tengo una marca de tiempo UNIX y me gustaría obtener una fecha formateada (como la salida de date
) correspondiente a esa marca de tiempo.
Mis intentos hasta ahora:
$ 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'
Me gustaría poder obtener resultados como:
$ TZ=UTC somecommand 1282368345
Sat Aug 21 05:25:45 UTC 2010
command-line
Umang
fuente
fuente
info coreutils date
un poco más cuidadosamente.date -r 1447264553943
resultadosWed Dec 28 01:39:03 BRST 47831
, cuando en realidad es11/11/2015, 3:55:53 PM GMT-2:00
.Después de buscar en Google, encontré la manera de hacerlo solo con el
date
comando:fuente
date -d @xxx
no se agregó hasta coreutils 5.3 en 2005. Así es como tenía que hacerlo antes de eso.Este perl one-liner lo hará:
fuente
Con conchas incorporadas:
zsh
(4.1.1 (2003) y superior):ksh93
(ksh93i
(2000) y superior):bash
(4.2 (2010) y superior):En todos esos, reemplace
%c
con elstrftime()
formato que desee.fuente
bash
printf
solución?printf
en gnu.org/software/bash/manual/bashref.html#Bash-Builtins .En osx, tener en UTC
fuente
Otro buen ejemplo de la rica herencia del Unix moderno. De hecho, esto es posible en la mayoría de las variantes BSD:
(Por cierto, su ejemplo parece estar apagado por un segundo)
fuente
Responda a una pregunta anterior, pero creo que esto podría ser una mejora si alguien más lo busca. Esta función Bash funciona tanto en Linux como en OS X. No he probado en ningún otro sistema BSD. Pase el tiempo de época como argumento para esta función e imprimirá el formato de hora RFC-3339.
fuente