1. ホーム
  2. ruby-on-rails

[解決済み】Ruby/Rails: 日付をUNIXタイムスタンプに変換する場合

2022-04-09 03:30:59

質問

RailsアプリでDateオブジェクトからUNIXタイムスタンプ(1970GMTからの秒数)を取得するにはどうしたらよいでしょうか?

知っている Time#to_i はタイムスタンプを返しますが Date#to_time で、そのタイムスタンプを取得すると、1ヶ月ほどずれたものが出てきます(理由は不明ですが・・・)。

どんな助けでも感謝します、ありがとうございます

その結果、最終的にタイムスタンプが1ヶ月ずれてしまいました。しかし、もしこの処理を Date#to_time .

解決方法は?

コード date.to_time.to_i は正常に動作するはずです。 以下のRailsコンソールセッションはその例です。

>> Date.new(2009,11,26).to_time
=> Thu Nov 26 00:00:00 -0800 2009
>> Date.new(2009,11,26).to_time.to_i
=> 1259222400
>> Time.at(1259222400)
=> Thu Nov 26 00:00:00 -0800 2009

中間の DateTime オブジェクトはローカルタイムなので、タイムスタンプは期待したものより数時間ずれている可能性があることに注意してください。 UTC時間で動作させたい場合は、DateTimeのメソッド "to_utc"を使用することができます。