【发布时间】:2013-05-31 20:30:30
【问题描述】:
当我发布消息时,时间显示正确(所需的时区)。一旦我刷新浏览器,时间就会被扭曲。 我检查了控制台和数据库表,我更加困惑。 我都检查了本地环境和 Heroku 环境。
当前设置:
在 Heroku 控制台上,
heroku config:add TZ="Asia/Seoul"
在 application.rb 中
config.time_zone = 'Seoul'
config.active_record.default_timezone = 'Seoul'
有什么需要解决的吗?
更新 我删除了application.rb中的时区设置,现在 现在时间 = +0900 Time.zone.now = +00:00
根据post这个@,无论在配置文件中如何设置时区,rails DB会一直使用UTC时区吗?
【问题讨论】:
-
在 Rails 中,日期时间以 UTC 格式保存到数据库。在您的记录中,时间被错误地保存为本地时间。因此,显示时添加了 9hours,尽管它实际上是本地时间。尝试删除“config.active_record.default_timezone = 'Seoul'”。
-
DB 的时区好像不同步,只是简单地删除 application.rb 中的时区配置并没有解决问题。
-
您是否根据应用程序中任何位置的用户设置来设置 time_zones?时区有时真是让人头疼;)
-
没有。是的,看起来是这样:(
-
是的,数据库将始终保存为 UTC,一种标准格式。这很好,应该发生的是,rails 会根据您设置的
config.time_zone将该标准 UTC 时间转换为用户友好的显示值...您使用什么来显示应用程序中的created_at?