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



我正在尝试在我的应用程序中获取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时,我会在每个entry文本的底部包含时间戳updated_at。 时间戳显示 UTC 时间,我希望它们显示我在中部时区更新它的时间,这样时间就不会比我更新的时间早 5 小时。

更新以回答更新的问题。

如果应用的时区始终为"中部",则可以为 ApplicationController 设置时区

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

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

相关内容

  • 没有找到相关文章