諸行無常

IT色々お勉強中のブログ

rails timezoneの扱いについて

いろいろ頭の整理の為 application.rbに設定すると変更できる

①表示時のタイムゾーンJSTに変更 config.time_zone = 'Tokyo'

②DB保存時のタイムゾーンJSTに変更 config.active_record.default_timezone = :local

②を設定してなかった時

    yesterday = Time.current - 1.days

      .where('hoges.hoge_finish_at >= ?', yesterday.strftime("%Y-%m-%d 00:00:00"))

DBがUTCなので画面と表示してる時間だと取れない

      .where('hoges.hoge_finish_finish_at >= ?', yesterday.beginning_of_day)

でも以上のようにすると取れるようになった。railsで上手いこと変換してくれる? ちなみにutcに変換するには以下のようにする

yesterday.beginning_of_day.gmtime