Rails 3 时区错误

5
我在Rails 3 beta中遇到了时区支持的问题,我想知道是不是一个bug还是我做错了什么。问题如下:
> Time.zone = 'Madrid' # 这里是GMT+2 => "Madrid" > c = Comment.new => #<Comment id: nil, title: "", pub_at: nil> > c.pub_at = Time.zone.parse('10:00:00') => Mon, 31 May 2010 10:00:00 CEST +02:00 > c.save > c => #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00"> > c.reload => #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00"> ruby-1.8.7-p249 > c.pub_at => Mon, 31 May 2010 13:00:00 CEST +02:00
正如你所看到的,pub_at属性在数据库中被正确地存储,但当它被检索时,它会增加3个小时,我怀疑这是因为它正在使用我本地机器的时区,而该时区为GMT-3。
在rails 2.3.5中执行相同的命令序列可以完美地工作。
有什么想法吗?我应该报告一个票吗?
1个回答

3

如果我没记错的话,所有日期都以UTC格式存储在数据库中。

Rails和控制台处理日期的方式不同!

因此,您应该尝试通过将时区设置为application.rb来在应用程序中测试它。

config.local_zone = 'Madrid'

然后打印该值!您应该能看到正确的时间。

希望这可以帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接