0

データベースに保存する適切な時間を取得する際に問題が発生しています。postgres で SELECT NOW() を実行すると、EDT で適切な時間が得られます。ルビーコンソールで Time.now を実行すると、正しい時刻も取得されます。Time.now から取得したものを手動でコピーして貼り付け、psql を介してデータベースに保存することもできます。問題は、コードで時間を保存しようとすると、時間が 3 時間または 4 時間進んでしまうことです。

Time.now または SELECT NOW() から取得したものを正確に確認する必要がある場合は、お知らせください。家に帰ったら投稿します。

私が見落としている小さなものがあると確信していますが、それを理解することはできません! これは、Postgres を使用して Ruby on Rails をセットアップする人々にとって一般的な問題である可能性があると思います。助けてくれてありがとう。

4

1 に答える 1

1

Rails 3はデフォルトで、GMT + 00:00タイムゾーンの相対的なデータベースにすべての時間を保存します。したがって、タイムゾーンに応じて時間を計算するときにオフセットを設定する必要があります。それ以外の場合は、以下を追加してデフォルトのActiverecordタイムゾーンを変更できますapplication.rb

 config.time_zone = 'Your time zone' (Example: 'Eastern Time (US & Canada)')
 config.active_record.default_timezone = 'Your time zone' (Example: 'Eastern Time (US & Canada)')
于 2012-03-15T19:14:59.070 に答える