我一直在使用一个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"
答案 0 :(得分:1)
Rails将所有时间戳存储在数据库中的UTC
中。在控制台上键入这些命令时,它会将时间戳转换为您指定的特定时区。
http://api.rubyonrails.org/classes/ActiveRecord/Timestamp.html
我的具体情况2014-08-28 15:58:26 UTC
与2014-08-28 21:28:26 IST
相同。
将所有时间戳保存为UTC可使数据保持一致,并且模糊的范围较小。然后,您可以根据您选择的时区进行所有转换。