Stampa la data / ora corrente con precisione al secondo secondo

4

GNU date(1) comprende la specifica di formato %N , che emette nanosecondi, quindi:

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

output 19: 10: 03.725196000

La data BSD non comprende% N. Come posso stampare l'ora corrente con precisione al secondo inferiore su OS X?

    
posta Daniel Serodio 26.10.2011 - 23:08
fonte

2 risposte

5

Come hai detto, BSD date non supporta %N . Quindi la soluzione più semplice è scaricare GNU date e installarlo su ~/bin o /usr/local/bin e chiamarlo quando è necessario utilizzare %N .

Tuttavia, non consiglierei di sostituire la versione fornita con il tuo Mac con quella nuova. La maggior parte di questi programmi coreutil sono scritti in modo tale che il loro output possa essere compreso da altri programmi , non necessariamente dagli umani, quindi l'affidabilità dell'output è una necessità. Ci potrebbero essere diversi script nel tuo mac che analizzano l'output di BSD date e qualsiasi possibile modifica introdotta sostituendo con GNU potrebbe o non potrebbe rompere le cose.

Il modo più semplice per farlo in sicurezza su un Mac è utilizzare homebrew e installare coreutils.

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

L'equivalente GNU sarà denominato gdate e si trova in /usr/local/Cellar/coreutils/8.16/bin/ . Puoi anche impostare un alias in .bashrc o equivalente come

alias date='gdate'
    
risposta data 01.04.2012 - 23:36
fonte
0

Usa python. È integrato in macOS, quindi non è necessario installare software aggiuntivo!

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

Se vuoi che l'output sia formattato in modo diverso, dai un'occhiata a link

    
risposta data 25.10.2018 - 17:22
fonte

Leggi altre domande sui tag