なんらかの理由で、開発 (ローカル Mac) と本番 (Heroku) で時間が異なって表示されます。見てみましょう: (これを行う直前に を実行したheroku db:pull
ため、データベースは同一である必要があります)
プロダクション (Heroku)
>> Annotation.last.id
=> 2028
>> Annotation.last.created_at
=> Sat, 12 Sep 2009 06:51:33 UTC +00:00
>> Time.zone
=> #<ActiveSupport::TimeZone:0x2b4972a4e2f0 @tzinfo=#<TZInfo::DataTimezone: Etc/UTC>, @utc_offset=0, @name="UTC">
>> Time.now.zone
=> "PDT"
開発 (私の Macbook Pro)
>> Annotation.last.id
=> 2028
>> Annotation.last.created_at
=> Sat, 12 Sep 2009 09:51:33 UTC +00:00
>> Time.zone
=> #<ActiveSupport::TimeZone:0x23c92c0 @tzinfo=#<TZInfo::DataTimezone: Etc/UTC>, @utc_offset=0, @name="UTC">
>> Time.now.zone
=> "EDT"
時間が 3 時間違うので、created_at
これは EDT と PDT の 3 時間の違いに関連していると思いますが、何が起こっているのかわかりません。
編集:生データは次のようになります。
sqlite> Select created_at from annotations where id = 2028;
2009-09-12T09:51:33-04:00