2013-06-25 4 views
8

j'utiliser cette commande beaucoup sur OS X pour créer un horodatage à des fins d'archivage:timestamp y compris millisecondes

date -n +%Y%m%d%H%M%S 

Cela donne une réponse dans ce format:

20130625230005 

Je voudrais ajouter des millisecondes à la fin de cette chaîne. Est-il possible d'obtenir cela avec Ruby depuis la ligne de commande?

Il est malheureusement pas possible de le faire sur OS X en ajoutant quelque chose à la commande ci-dessus: Add milliseconds to timestamp (bash, unix)

Répondre

14

DateTime#strftime a un spécificateur de format %L millisecondes:

$ ruby -e "puts Time.now.strftime('%Y%m%d%H%M%S%L')" 
20130625141141827 

Mise à jour: Pour répondre à la question dans votre commentaire, oui, c'est possible. En cliquant sur le lien de la documentation ci-dessus, il y a %N pour les seconds chiffres fractionnaires. Pour supprimer le dernier chiffre ci-dessus, utilisez %2N plutôt que %L (%3N est équivalent à %L). Pour obtenir seulement des décisecondes, utilisez %1N.

+0

merci! est-il possible d'enlever un chiffre ou d'obtenir des désseconds (je suppose que je pensais que les décisecondes étaient des millisecondes) –

+1

@TorThommesen De rien! Et oui, c'est possible. J'ai mis à jour ma réponse pour expliquer comment. –