ruby-on-rails - Rails 3 时区问题(数据库关闭 5 小时)

标签 ruby-on-rails time timestamp

所以在我的 Rails 控制台中。这是我检查 Time.now 时得到的结果:

1.9.2p290 :014 > Time.now
 => 2012-02-06 01:00:43 -0500 
1.9.2p290 :015 > Time.now.zone
 => "EST"

在我的 application.rb 中,我设置时区如下:

config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = 'Eastern Time (US & Canada)'

但是,当我将某些内容存储到数据库中时,仍然有 5 个小时的时间:

1.9.2p290 :011 > event = Event.new(:message => 'blah', :status_id => 1, :service_id => 1, :created_at => Time.now)
 => #<Event id: nil, message: "blah", status_id: 1, service_id: 1, created_at: "2012-02-06 05:55:26", updated_at: nil>

为什么休息五个小时?如果我比较每个区域的区域,这就是我得到的结果:

1.9.2p290 :016 > event.created_at.zone
 => "EST" 
1.9.2p290 :017 > Time.now.zone
 => "EST" 

最佳答案

好的,我解决了这个问题。看起来 application.rb 中的这一行导致了问题。 config.active_record.default_timezone = '东部时间(美国和加拿大)'

根据 ActiveRecord::Timestamp 文档,ActiveRecord 将默认使用本地时区。 http://api.rubyonrails.org/classes/ActiveRecord/Timestamp.html

关于ruby-on-rails - Rails 3 时区问题(数据库关闭 5 小时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9156153/

相关文章:

ruby-on-rails - 如何访问 Rails 5 Action Cable Channels 中的关注点和应用程序 Controller 代码

Java:如何存储从时间 x 到 y(间隔)的时间线/时间表、位置已满或空?

bash - 如何同时在 BASH 中创建带时间戳的日志和错误句柄?

java - 如何将长本地时间戳转换为字符串 UTC 时间戳

ruby-on-rails - 有条件地生成回形针附件的样式

ruby-on-rails - 将Markdown与Rails结合使用

ruby-on-rails - Rails 4 binstubs 冲突的 Capistrano 3 部署?

java - 来自不同服务器的 java.sql.Time 生成的不同输出

linux - 在特定时间用 bash 截屏

git:如何还原唯一更改是修改时间戳的所有文件?