L'affichage de l'heure en bas de millisecondes en Ruby 1.8.7
Que j'essaie de faire ma demande de montrer le temps vers le bas pour les millisecondes (par exemple 11:37:53.231), mais strftime
dans 1.8.7 ne semble pas avoir une option pour elle (http://ruby-doc.org/core-1.8.7/Time.html#method-i-strftime). En Ruby >= 1.9.3, il y a l' %3N option (http://ruby-doc.org/core-1.9.3/Time.html#method-i-strftime), mais il n'est pas dans les docs pour 1.8.7, et ne semble pas fonctionner non plus.
C'est le résultat que j'obtiens en Ruby 1.8.7.
cur_time = Time.now
# => Mon Jun 24 12:43:14 +0900 2013
cur_time.strftime('%H:%M:%S.%3N')
# => "12:43:14.%3N"
Est-il d'autres solution? Malheureusement, le déplacement à 1.9.3 n'est pas une option.
OriginalL'auteur hitsuyashi | 2013-06-24
Vous devez vous connecter pour publier un commentaire.
Comment quelque chose comme cela:
Puis
((time_diff - time_diff.to_i) * 1000.0).to_i
à l'intérieur de lato_milliseconds
formule permettrait de fournir seulement les millisecondes à la fin.pour millisecondes entre 0 et 99, vous devez ajouter .to_s.rjust(3, '0') pour mon code précédent (ne peut pas modifier).
monkey patching est mauvais bro.
oui, c'est souvent une mauvaise idée, mais vous n'avez pas à monkey patch
Time
, vous pouvez facilement ajouter une méthode à votre propre classe. C'est juste un exemple 🙂OriginalL'auteur nicosantangelo
Je pense que vous pourriez être à la recherche pour "%L", qui vous donnera quelques millisecondes dans les trois chiffres.
Cependant, je ne suis pas sûr si cela est pris en charge dans les anciennes versions de Ruby.
OriginalL'auteur Jay Kay
Sur cette base:
Une microseconde est égal à 1000 nanosecondes ou 1/1,000 millisecondes
Vous pourriez obtenir une microseconde d'abord par :
Retourne le nombre de microsecondes pour le moment.
Puis diviser par 1000
OriginalL'auteur Keane_zhou
FWIW ma solution à ce problème est
time.strftime("%H:%M:%S.#{time.usec/1000}")
.OriginalL'auteur Max Williams
Un petit remaniement à la réponse fournie par NicoSantangelo:
Alors vous pouvez l'utiliser comme ceci dans le but de générer un WS-security plainte timestamp:
Ou vous pouvez l'utiliser comme nécessaire dans votre exemple...
OriginalL'auteur Abraham