Rubyでは、エポック(1970年)以来の現在のシステム時間を得る正しい方法はミリ秒?現在のシステム時間をミリ秒で取得する
私はTime.now.to_i
を試しましたが、私が望む結果ではないようです。私は結果がミリ秒で、long
タイプで、float
またはdouble
ではないことが必要です。
Rubyでは、エポック(1970年)以来の現在のシステム時間を得る正しい方法はミリ秒?現在のシステム時間をミリ秒で取得する
私はTime.now.to_i
を試しましたが、私が望む結果ではないようです。私は結果がミリ秒で、long
タイプで、float
またはdouble
ではないことが必要です。
(Time.now.to_f * 1000).to_i
Time.now.to_f
には10進数を含む時刻が表示されます。ミリ秒数を取得するには、時間を1000倍してください。
to_i
とusec
を組み合わせることができます。上記のようないくつかのケースで
t.strftime('%s%L')
#=> "1473152006002"
、to_f
が僅かに導入する:
require 'time'
t = Time.at(1473152006, 2000)
t.to_i * 1000 + t.usec/1000
#=> 1473152006002
これは、と等価である:前者戻るエポックからの秒数は、後者は、マイクロ秒の数を返します浮動小数点エラー:
t.to_f * 1000
#=> 1473152006001.9998
(t.to_f * 1000).to_i
#=> 1473152006001
値を丸めて固定することができます。これはfloat値をintに変換します。 '(Time.now.to_f * 1000).round' –
' Time.at(1473152006、999) 'で失敗する@kallax' – Stefan