【发布时间】:2010-03-25 00:47:42
【问题描述】:
我的网站部署在 heroku 上。 Time.now 今天将返回,但记录的 created_at 字段(现在创建)将在明天返回。我认为这与服务器时间有关?
有没有办法确保它们相同? 最好的, 艾略特
更新所以我做了这个“heroku rake time:zones:us”
它给了我:
* UTC -10:00 *
Hawaii
* UTC -09:00 *
Alaska
* UTC -08:00 *
Pacific Time (US & Canada)
* UTC -07:00 *
Arizona
Mountain Time (US & Canada)
* UTC -06:00 *
Central Time (US & Canada)
* UTC -05:00 *
Eastern Time (US & Canada)
Indiana (East)
但是,当我在我的环境中设置 config.time_zone = 'UTC -05:00' 时,应用程序无法启动。有什么想法吗?
【问题讨论】:
-
您需要使用“东部时间(美国和加拿大)”或“印第安纳州(东部)”来设置时区,因为它们是 UTC -05:00 的名称。此外,最好在设置 config.time_zone 时调用 Time.current 而不是 Time.now。
-
嗨:时区的名称出现在 UTC 规范之下。例如,使用: config.time_zone = 'Indiana (East)' 正如 Corey 所说,使用 Time.current(或 Time.zone.now)将产生根据您配置的时区调整的时间。一般来说,您可以使用您习惯的任何 Time 方法,但您应该在 Time.zone 上调用它们,这会考虑您的时区。这当然是与 Rails 相关的;如果没有 ActiveSupport,它将无法在普通 Ruby 上运行。
标签: ruby-on-rails