`updated_at`时间不反映我的时区

时间:2012-08-06 20:24:14

标签: ruby-on-rails-3 heroku timezone

我正在尝试在我的应用中获取updated_at时间戳以反映我的时区。它们在本地正确显示,但当它们在Heroku上production时,它们反映了标准UTC。我已将此添加到我的Heroku配置中:

$ heroku config:add TZ=America/Minneapolis

在我的application.rb我还添加了:

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

Heroku上的时间戳仍然显示UTC时间,我是UTC / GMT -5:00。有人知道我错过了什么或做错了吗?


更新


当我在项目中显示entries时,我会在每个updated_at文本的底部添加时间戳entry。时间戳显示UTC时间,我希望它们显示我在中心时区更新它的时间,这样我的时间就不会超过5小时。

2 个答案:

答案 0 :(得分:1)

更新以回答更新的问题。

如果您的应用的时区始终为“中心”,则可以为ApplicationController设置时区

Time.zone = 'Central Time (US & Canada)'

答案 1 :(得分:0)

我正在使用entry.updated_at.localtime.strftime('* %a, %b %-e, %Y @ %l:%M%p')显示时间戳。我认为在那里使用localtime方法与它有关。我删除了localtime并将%Z添加到strftime参数的末尾以添加缩写的时区。现在它正在显示我想要的方式。我不确定localtime是如何影响它的,但删除它似乎解决了这个问题。