Ruby でエポックミリ秒

  • 0
    いいね
  • 0
    コメント

    JavaScript が Date.now() でエポックミリ秒を返すので時間のフォーマットをそれにしていたら、Ruby で扱うときに Time クラスだとマイクロ秒しか取れなくって非常に面倒くさかったので、Ruby でエポックミリ秒を生成する方法をいくつかまとめておく。

    Time クラスを使う方法

    Time.now.strftime('%s%L').to_i
    

    %L でミリ秒単体で取れるので、エポック秒とくっつければエポックミリ秒になる

    (Time.now.to_f * 1000).to_i
    

    これだと文字列に変換しなくて済むけど、パッと見わかりづらい気もする

    DateTime クラスを使う方法

    require 'date'
    DateTime.now.strftime('%Q').to_i
    

    DateTime クラスだと %Q が使えるらしいが、 require 要るので微妙