Imprimiendo la fecha / hora actual con una precisión de un segundo

4

GNU date(1) entiende la especificación de formato %N , que genera nanosegundos, por lo que:

$ date +%H:%m:%S.%N

salidas 19: 10: 03.725196000

La fecha BSD no comprende% N. ¿Cómo puedo imprimir la hora actual con una precisión de menos de un segundo en OS X?

    
pregunta Daniel Serodio 26.10.2011 - 23:08

2 respuestas

5

Como dijiste, BSD date no admite %N . Entonces, la solución más sencilla es descargar date de GNU e instalarlo en ~/bin o /usr/local/bin y llamar a eso cuando necesite usar %N .

Sin embargo, no recomendaría reemplazar la versión que viene con su Mac con la nueva. La mayoría de estos programas coreutil están escritos de tal manera que su salida puede ser entendida por otros programas , no necesariamente humanos, por lo que la fiabilidad en la salida es una necesidad. Puede haber varios scripts en tu mac que analizan la salida de BSD's date y cualquier cambio posible introducido al reemplazar con GNU puede o no romper las cosas.

La forma más sencilla de hacer esto de manera segura en una Mac es usar homebrew e instalar coreutils.

brew info coreutils
coreutils 8.16
http://www.gnu.org/software/coreutils
...   
==> Caveats
All commands have been installed with the prefix 'g'.

El equivalente de GNU se llamará gdate y se encuentra en /usr/local/Cellar/coreutils/8.16/bin/ . También puede establecer un alias en su .bashrc o su equivalente como

alias date='gdate'
    
respondido por el rm -rf 01.04.2012 - 23:36
0

Usa python. Está integrado en macOS, por lo que no necesita instalar software adicional.

python -c 'import datetime; print datetime.datetime.now()'

Si desea que la salida tenga un formato diferente, eche un vistazo a enlace

    
respondido por el Wowfunhappy 25.10.2018 - 17:22

Lea otras preguntas en las etiquetas