¿Cómo convierto una marca de tiempo de época a un formato legible para humanos en el cli? Creo que hay una manera de hacerlo con la fecha, pero la sintaxis me elude (otras formas son bienvenidas).
command-line
shell
date
xenoterracida
fuente
fuente
@
endate -d @1234567890
?man date
no hizo referencia a eso ...info date
es bastante completo. La entrada en28.9 Seconds since the Epoch
explica en detalle sobre el @timestamp.date -d @1190000000
Reemplace 1190000000 con su épocafuente
Esto puede ser útil para aquellas aplicaciones que usan tiempo de época en los archivos de registro:
fuente
Formato personalizado con GNU
date
:O con GNU
awk
:Pregunta SO vinculada: https://stackoverflow.com/questions/3249827/convert-from-unixtime-at-command-line
fuente
Con
bash-4.2
o por encima:(donde
%F %T
está elstrftime()
formato de tipo)Esa sintaxis está inspirada
ksh93
.En
ksh93
Sin embargo, el argumento se toma como una expresión de la fecha en que se soportan varios formatos y apenas documentados.Para un tiempo de época Unix, la sintaxis en
ksh93
es:ksh93
sin embargo, parece usar su propio algoritmo para la zona horaria y puede equivocarse. Por ejemplo, en Gran Bretaña, era verano todo el año en 1970, pero:fuente
Si su tiempo de época es en milisegundos en lugar de segundos, elimine los últimos tres dígitos antes de pasarlo a
date -d
:Esto da datos incorrectos. Elimina los últimos tres dígitos.
fuente
Los dos que uso con frecuencia son:
y
fuente
Con
zsh
usted podría usar elstrftime
incorporado:p.ej
También hay
dateconv
dedateutils
:tenga en cuenta las
dateutils
herramientas predeterminadas paraUTC
(agregar-z your/timezone
si es necesario).fuente
También podría usar un pequeño programa en C para imprimir la fecha y hora en el formato que el shell puede analizar directamente
uso:
fuente
No sería una solución real sin un pequeño nodo.js:
agregue eso
~/.bash_aliases
y asegúrese de que se obtiene~/.bashrc
con. ~/.bash_aliases
Para obtener el nodo en su sistema, vaya a http://nvm.sh y ejecute el comando curl. Instalará el administrador de versiones de nodo (nvm) que le permite cambiar las versiones de nodo.
Simplemente escriba
nvm ls-remote
y elija una versión paranvm install <version>
.fuente
Hay una manera más fácil de hacer esto: (([System.DateTimeOffset] :: FromUnixTimeMilliSeconds ($ unixtime)). DateTime) .ToString ("s")
fuente