我部署了一个Rails应用程序,但我在created_at列上弄错了时间。时区或时间冲突
我去rails控制台制作并运行Time.now,我得到正确的时间。
我登录到MySQL并运行SELECT NOW();我得到正确的时间。
但是,当一个新的记录被创建到数据库中时,我知道它大约早上5点,实际上是凌晨1点左右。
任何人都会遇到类似的事情吗?你怎么修好它的?
我部署了一个Rails应用程序,但我在created_at列上弄错了时间。时区或时间冲突
我去rails控制台制作并运行Time.now,我得到正确的时间。
我登录到MySQL并运行SELECT NOW();我得到正确的时间。
但是,当一个新的记录被创建到数据库中时,我知道它大约早上5点,实际上是凌晨1点左右。
任何人都会遇到类似的事情吗?你怎么修好它的?
问题是,您的应用程序中没有设置默认时区。
你可以做你的environment.rb(梁2)或application.rb中(Rails 3中)的文件,你可以设置默认的时区是这样的:
config.time_zone = 'Central Time (US & Canada)'
参考:http://databasically.com/2010/10/22/what-time-is-it-or-handling-timezones-in-rails/
并使用Time.zone.now不Time.now ... – emrahbasman
难道你添加时区到你的application.rb? – emrahbasman
也许这会有所帮助:[Ruby on Rails:当我给DB写入时间时为什么会得到时区,然后再读回?](http://stackoverflow.com/questions/319527/ruby-on-rails-为什么这样做 - 我得到 - 时区 - 当我写时 - 到 - 分贝 - 然后) – rdvdijk