¿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 dateno hizo referencia a eso ...info datees bastante completo. La entrada en28.9 Seconds since the Epochexplica en detalle sobre el @timestamp.date -d @1190000000Reemplace 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.2o por encima:(donde
%F %Testá elstrftime()formato de tipo)Esa sintaxis está inspirada
ksh93.En
ksh93Sin 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
ksh93es:ksh93sin 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
zshusted podría usar elstrftimeincorporado:formato de tiempo de ejecución epochtime Muestra la fecha indicada por epochtime en el formato especificado.p.ej
También hay
dateconvdedateutils:tenga en cuenta las
dateutilsherramientas predeterminadas paraUTC(agregar-z your/timezonesi 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_aliasesy asegúrese de que se obtiene~/.bashrccon. ~/.bash_aliasesPara 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-remotey 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