0

日時属性を保存するときに、フォームが -05:00 ではなく -04:00 を返すという問題があります。

Rails 3.2.3 の使用

application.rb で:

config.time_zone = 'Eastern Time (US & Canada)'

mysql2 アダプターで MySQL を使用する

ランニング@wine.released_at.localtimeリターン2008-05-15 00:00:00.000000000 -04:00
ランニング@wine.released_atリターン2008-05-15 04:00:00.000000000 Z
ランニングTime.now.zoneリターンEastern Standard Time
ランニング@wine.released_at.zoneリターンEDT

私はかなり混乱しています。config.time_zone を設定すると、Rails がすべてのデータベースの datetime 値を設定された time_zone に自動的に変換するようにする必要があります...なぜこれが起こらないのですか?

4

2 に答える 2

0

zone指定された時間に適用される「ゾーン間隔」の名前をプロパティが返すように見えます。したがって、夏時間の場合は「EDT」が返されますが、冬時間の場合は「イースター標準時」が返されます。(一方の略語を使用し、他方の略語を使用しないのは奇妙ですが、ちょっと...)

つまり、両方に同じタイム ゾーン使用しています。これらは、同じタイム ゾーン内の異なる側面にすぎません。標準時間の場合もあれば、夏時間の場合もあります。

印刷Time.now.localtimeすると、-05:00 と表示され、東部時間での UTC からの現在のオフセットが -5 時間であることを示します (つまり、東部時間は現在 UTC から 5 時間遅れています)。

于 2013-01-20T20:45:28.987 に答える
0

in_time_zone を使ってみましたか?

于 2013-01-20T20:46:50.613 に答える