通常、私のプロジェクトのタイムスタンプはTime.now.utc
です。しかし、今回はTime.now.utc
を使用するだけでは正確ではないようです。Ruby - Time.now.utcよりも正確なタイムスタンプ
Time.now.utc
は第2レベルにあります(それは正しいですか?)、私が望むほど正確ではありません。
ミリ秒単位でタイムスタンプを生成する方法はありますか? Timeドキュメントから
通常、私のプロジェクトのタイムスタンプはTime.now.utc
です。しかし、今回はTime.now.utc
を使用するだけでは正確ではないようです。Ruby - Time.now.utcよりも正確なタイムスタンプ
Time.now.utc
は第2レベルにあります(それは正しいですか?)、私が望むほど正確ではありません。
ミリ秒単位でタイムスタンプを生成する方法はありますか? Timeドキュメントから
:
お使いのシステムクロックに利用できる解像度を使用して作成されます作成されたオブジェクトなどは小数秒を含むことができます。
例:
a = Time.new
"%.6f" % a.to_f
=> "1334402161.334542"
時間は、エポック以降の分数と秒数、1970年1月1日午前〇時00 UTC
として内部的に格納されます
内部フロート表示には、to_f
方法、例えば。
irb> Time.now.to_f
=> 1334401921.06418
またはあなたは、うまくそれをプリントアウトするstrftime
メソッドを使用することができます。例:
irb> Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")
=> "2012-04-14 21:20:58.100"
(理論的には、少なくとも、私は、Ruby 1.8上で動作するように%L
を取得することはできませんが、それはありません1.9)
さらに精度を上げるために、6桁(マイクロ秒)で '%6N 'を使用できます。 [The docs](http://ruby-doc.org/core-2.3.0/Time.html#method-i-strftime)は最大24桁(yoctoseconds)の精度を表示しますが、 '%1000N'お望みならば。当然のことながら、あなたのCPUはその時間内に単一の命令を実行することさえできず、Rubyは多くのオーバーヘッドを追加するので、大きな精度は理論的なものに過ぎません。 –