rails活动记录时区

时间:2014-08-28 16:31:42

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我一直在使用一个rails项目,在创建对象时,我需要使用created_at字段的确切时间。我已经在applicaiton.rb中尝试了这些。

config.time_zone = 'Chennai'
config.active_record.default_timezone = :local

当我在控制台中尝试时,它显示为

Time.now
=> 2014-08-28 21:31:31 +0530
m.created_at
=> Thu, 28 Aug 2014 21:28:26 IST +05:30

但问题是当我拿一个数据库对象时,created_at时间是

 created_at: "2014-08-28 15:58:26"

1 个答案:

答案 0 :(得分:1)

Rails将所有时间戳存储在数据库中的UTC中。在控制台上键入这些命令时,它会将时间戳转换为您指定的特定时区。

http://api.rubyonrails.org/classes/ActiveRecord/Timestamp.html

我的具体情况2014-08-28 15:58:26 UTC2014-08-28 21:28:26 IST相同。

将所有时间戳保存为UTC可使数据保持一致,并且模糊的范围较小。然后,您可以根据您选择的时区进行所有转换。