web-dev-qa-db-fra.com

Afficher l'horodatage en jj / mm / aaaa_hh: mm: ss: ms sous Unix ou Linux

J'ai besoin d'afficher la date et l'heure au format souhaité sous Unix/Linux. Mon format souhaité est: jj/mm/aaaa hh: mm: ss: ms sous Unix ou Linux. Je me suis rapproché en utilisant la commande suivante:

echo $(date +%x_%r)

Cela renvoie:

08/20/2012_02:26:14 PM

Aucune suggestion?

26
Hank
date +%x_%H:%M:%S:%N

si vous devez imprimer seulement deux premiers nombres en ms:

date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$/\1/'

pour le stocker dans le var:

VAR=$(date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$/\1/')
27
rush

Si vous voulez des millisecondes au lieu d'une précision en nanosecondes, vous pouvez utiliser %3N Au lieu de %N:

$ date +'%d/%m/%Y %H:%M:%S:%3N'
12/04/2014 18:36:20:659

ou avec votre utilisation souhaitée de $(…):

$ echo "$(date +'%d/%m/%Y %H:%M:%S:%3N')"
12/04/2014 18:36:20:659

Mais sachez que %N Peut ne pas être implémenté en fonction de votre système cible ou de la version bash. Testé sur un système embarqué "GNU bash, version 4.2.37 (2) -release (arm-buildroot-linux-gnueabi)" il n'y avait pas %N (Ni %3N):

date +"%F %T,%N"
2014-01-08 16:44:47,%N
24
Joe
5
Nifle

Tu peux essayer:

echo `date +"%Y_%m_%d %H:%M:%S,"``date +%N/1000000|bc -l|grep -Eo "^([0-9]{0,3})"`

Pour une raison quelconque, `` '' est omis, alors mettez-le après l'écho et à la fin, ou simplement:

date +"[%Y_%m_%d %H:%M:%S,%3N]"
0
user2538887

Quelque chose comme ça:

date +'%d/%m/%Y_%H:%M:%S:%N'

Utilisé %N pour les nanosecondes (000000000..999999999) car je n'ai pas trouvé de millisecondes pour le moment

0
Johan