4

我需要在本地时区显示我的应用程序显示时间。在本地,我在 application.rb 中使用 Time.zone = "Athens" ,它工作正常。

对于 Heroku,我使用了“heroku config:add TZ=Europe/Athens”。这适用于我从命令行执行的每个操作,但不适用于我的应用程序。

例如

heroku 运行日期:运行date附加到终端... up, run.4786 Tue Apr 23 15:13:51 EEST 2013

heroku 运行控制台

Order.last.created_at => 2013 年 4 月 23 日星期二 13:15:53 EEST +03:00

Time.zone => (GMT+02:00) 雅典

但我把它放在我的 Rails 视图中: <%= Time.zone %> 我得到了这个: (GMT+00:00) UTC 我的时间出现在实际应用程序中的 UTC 时间。

那么,如何设置时区以应用于 heroku 上的实际 rails 应用程序(而不仅仅是控制台)。

4

3 回答 3

10

尝试在 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

于 2013-04-24T21:05:49.430 回答
0

您是否尝试过application.rb按照此处所述设置时区?

 config.time_zone = 'Eastern Time (US & Canada)'
 config.active_record.default_timezone = 'Eastern Time (US & Canada)'
于 2013-04-23T14:16:33.877 回答
0

要在 heroku 中设置时区,您可以从终端设置它

$ heroku config:add TZ="Asia/Jerusalem"

来源 https://coderwall.com/p/j9_e8a/set-timezone-for-your-heroku-app

于 2018-11-23T06:26:48.257 回答