回答:
time = Time.now.getutc
理論的根拠:私の目には、タイムスタンプはまさにそれです:ある時点。これはオブジェクトで正確に表すことができます。その他、スカラー値、たとえばUnixエポックからの秒数、1601からの100ナノ秒間隔、または表示目的の文字列やデータベースへのタイムスタンプの格納が必要な場合は、オブジェクトから簡単に取得できます。しかし、それはあなたの使用目的に大きく依存します。
「真のタイムスタンプは、Unixエポックからの秒数」であると言います。これは、ある時点を表す1つの方法であるためですが、対処していることを知るためにも追加情報が必要です。時間ではなく数。Time
オブジェクトは、特定の時点を表すことによってうまくこの問題を解決しても、それが何であるかについて明示的であること。
次を使用できますTime.now.to_i
。
私の意見では、デフォルトのフォーマットはあまり役に立ちません。ISO8601は、並べ替え可能で、比較的コンパクトで広く認知されているため、私はそのほうを好みます。
>> require 'time'
=> true
>> Time.now.utc.iso8601
=> "2011-07-28T23:14:04Z"
/usr/share/ruby/2.0/time.rb
。
通常、タイムスタンプにはタイムゾーンがありません。
% irb
> Time.now.to_i == Time.now.getutc.to_i
=> true
to_f
良くなる
Time.utc(2010, 05, 17)
time = Time.zone.now()
それはとして機能します
irb> Time.zone.now
=> 2017-12-02 12:06:41 UTC
適切な方法はTime.now.getutc.to_i
、適切なタイムスタンプ量を取得するためにaを実行することです。これは、単に整数を表示することは、タイムゾーンの違いにより、必ずしもutcタイムスタンプと同じである必要はないためです。