我需要在本地时区显示我的应用程序时间。
在本地我在 application.rb 中使用 Time.zone = "Athens"并且它工作正常。
对于 Heroku,我使用了“heroku config:add TZ=Europe/Athens”。这适用于我从命令行执行的每个操作,但不适用于我的应用程序。
例如
heroku 运行日期 :
运行 date
连接到终端......启动,运行.4786
2013 年 4 月 23 日星期二 15:13:51 EEST
heroku 运行控制台 :
Order.last.created_at
=> 2013 年 4 月 23 日,星期二 13:15:53 EEST +03:00
时区
=> (GMT+02:00) 雅典
但我把它放在我的 rails View 中:
<%= 时区 %>
我明白了:
(GMT+00:00) UTC
我的时间出现在实际应用程序中的 UTC 时间。
那么,如何设置时区以应用于 heroku 上的实际 rails 应用程序(而不仅仅是控制台)。
最佳答案
尝试在 application.rb 中设置时区,如下所示:
config.time_zone = 'Athens'
config.active_record.default_timezone = :local
config.active_record.default_timezone 决定在从数据库中提取日期和时间时是使用 Time.local(如果设置为 :local)还是 Time.utc(如果设置为 :utc)。 Rails 的默认值是 :utc,尽管 Active Record 在 Rails 之外使用时默认为 :local 。
来自:http://guides.rubyonrails.org/configuring.html#configuring-active-record
关于ruby-on-rails - 无法设置 Heroku 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16169334/