コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

DBに入れる系の時間比較のときは .to_s(:db)だとUTCになり懸念点が減る

表題で全てを表現してしまっているシリーズ。 to_s(:db) とすると UTC に変換される

環境

rails (5.2.0)

実演

RailsアプリケーションはJST

Rails.application.config.time_zone
=> "Tokyo"
target_time = Time.zone.now
# => Mon, 25 Jun 2018 15:31:29 JST +09:00
target_time.to_s
# => "2018-06-25 15:31:29 +0900"
target_time.to_s(:db)
# => "2018-06-25 06:31:29"

ちゃんと書き換わってくれる。

便利ポイント

  • (DBの設定がUTCであれば)DBに入る値と同義になるので楽
  • 比較する時に小数点以下の情報がなくなるので秒数レベルのまでの一致確認で問題なければ楽

参考リンク