Rails时区问题

这是我的控制台:

irb(main):048:0> Time.now => 2011-04-13 00:51:50 +0200  (@stats[5] == '-' ? 0 : @stats[3]), :earn => @stats[6]) => # irb(main):050:0> 

正如你所知,当我创建一个新项目updated_at和created_at是“2011-04-12 22:52:13”而不是正确的时间:2011-04-13 00:51:50

 irb(main):048:0> Time.now => 2011-04-13 00:51:50 +0200 created_at: 2011-04-12 22:52:13 # +0000 

默认情况下,Rails存储在+0000时区,而您当前的时区为+0200

http://railscasts.com/episodes/106-time-zones-in-rails-2-1

相关话题:

  • 时区与铁轨3
  • Rails 3:将时区设置为当前用户时区

UPD

为了理解。 如果你设置config.time_zone = 'Copenhagen'是什么意思?

  • 时间仍将存储为UTC +0000
  • 如果你cal @ object.created_at(或任何其他日期字段),它将抵消你的时间并返回你当地的时间。

示例( config.time_zone = 'Moscow' # +0400

 object = Object.new object.save #=> # object.created_at #=> Wed, 13 Apr 2011 11:46:36 MSD +04:00 

为什么它以+0000 UTC存储时间? 由于用户可以选择任何本地时区,因此它会自动关闭到用户时区。