Date.today
正しい日付を表示していますが、ステートメントで使用Date.today
するModel.create
と、データベースに前の日付が挿入されますがDate.today.to_datetime
、データベースに正しい日付が挿入されます。
私の質問はDate.today
、Model.create
メソッドが DB に前の日付を挿入するのはなぜですか?
Date.today
正しい日付を表示していますが、ステートメントで使用Date.today
するModel.create
と、データベースに前の日付が挿入されますがDate.today.to_datetime
、データベースに正しい日付が挿入されます。
私の質問はDate.today
、Model.create
メソッドが DB に前の日付を挿入するのはなぜですか?
Rails では /config/application.rb にタイムゾーンの設定があります:
config.time_zone = 'Central Time (US & Canada)'
一貫性を保つため、すべての時刻は Rails のデータベースに UTC で保存されます。したがって、コンソールで試す場合:
$ rake time:zones:local
販売したすべての利用可能なタイム ゾーンを表示します。
次のように入力して違いを確認できます。
Time.now
と
Time.zone.now
Railsが提供する作成時間と更新時間のデフォルト列は、ほとんどの場合問題ないと思います。