无法设置Heroku时区

时间:2013-04-23 12:26:40

标签: ruby-on-rails heroku timezone

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

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

例如

heroku运行日期:     运行连接到终端的date ...运行,运行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 => (格林尼治标准时间+02:00)雅典

但我把它放在我的rails视图中:      <%= Time.zone%> 我得到了这个:     (格林尼治标准时间+00:00)UTC 我的时间以实际应用程序的UTC时间显示。

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

3 个答案:

答案 0 :(得分:10)

尝试在application.rb中设置时区,如下所示:

config.time_zone = 'Athens'
config.active_record.default_timezone = :local

config.active_record.default_timezone确定从数据库中提取日期和时间时是否使用Time.local(如果设置为:local)或Time.utc(如果设置为:utc)。默认值为:utc for Rails,尽管Active Record在Rails之外使用时默认为:local。

来自:http://guides.rubyonrails.org/configuring.html#configuring-active-record

答案 1 :(得分:0)

您是否尝试按here所述的application.rb设置时区?

 config.time_zone = 'Eastern Time (US & Canada)'
 config.active_record.default_timezone = 'Eastern Time (US & Canada)'

答案 2 :(得分:0)

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

进行设置
$ heroku config:add TZ="Asia/Jerusalem"

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