【发布时间】:2023-03-31 14:58:01
【问题描述】:
在我们的 rails 3.2 应用程序中,我们已经配置了,
config.time_zone = 'London'
config.active_record.default_timezone = :local
并且在 postgresql 中还将时区配置为“欧洲/伦敦”。
在过去一周内,我们的申请日期时间字段无法与时区一起正常工作。
例如,如果我们创建一个提醒start_date at 2015-08-18 10AM。它在 postgres 数据库中创建 `2015-08-18 10:00:00。
在模板中显示时,
提醒start date: 2015-08-18 10AM (2015-08-18 10:00:00 +0100 )
BUT,(not always) now frequently its showing UTC time.
提醒start date: 2015-08-18 9AM (2015-08-18 09:00:00 UTC )
它无法在开发中复制。
如果我们重新启动独角兽服务器,那么它不会在 4 小时内发生。
有人遇到过这种问题吗?
【问题讨论】:
-
在您提到的每种情况下,您用于打印日期的确切代码是什么?你会看到差异。带区域的时间和日期是您在 Rails 中需要非常小心的一个区域。
-
在展示中,只是将AR对象@reminder提取为,.
-
我不相信在 Rails 中设置日期时间,框架实际上不会对您的服务器或您的数据库执行相同的操作。说到时间,我强烈建议尽可能在 UTC 时间前后做所有事情,并且只在最后进行转换。
-
有时 config.time_zone = 'London' 采用 'UTC'。我同意你的观点。我们的应用程序非常庞大。所以我们计划将来将 timezzone 更改为 UTC。但是现在这个问题很烦人。时区在所有 EC2 实例中都不稳定
标签: ruby-on-rails ruby postgresql activerecord timezone