我需要让我的应用在本地时区显示时间。 本地我在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应用程序(而不仅仅是控制台)。
答案 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