ほとんどすべてenvironment.rb
には、config.time_zone = 'UTC'
の行があります。どのような条件下で、レールに異なるアプリケーションレベルのタイムゾーンを設定したいですか?
この行はどのような処理を行いますか。どのような状況で変更する必要がありますか(たとえばconfig.time_zone = 'EST'
)?
ほとんどすべてenvironment.rb
には、config.time_zone = 'UTC'
の行があります。どのような条件下で、レールに異なるアプリケーションレベルのタイムゾーンを設定したいですか?
この行はどのような処理を行いますか。どのような状況で変更する必要がありますか(たとえばconfig.time_zone = 'EST'
)?
設定config.time_zone
は、Railsアプリケーションのデフォルトのタイムゾーンを変更します。これは、すべての時間がユーザーに表示されるタイムゾーンです。また、属性を設定するときに仮定するタイムゾーンです。
しかし、Railsは常にUTCで時刻をデータベースに保存します。翻訳はその場で行われますので、ほとんどの場合、心配する必要はありません。
このタイムゾーンをほとんどのユーザーが使用するゾーンに変更するのが一般的です。このレーキタスクを実行すると、選択できるすべてのタイムゾーンが表示されます。
rake time:zones:all
彼らがしているどの時間帯を設定し、各ユーザーに許可するリクエストごとに現在のタイムゾーンを変更することも非常に簡単です。ここでは、フィルタの例前に、アプリケーションのコントローラに追加するかもしれないのです。
before_filter :set_user_time_zone
private
def set_user_time_zone
Time.zone = current_user.time_zone if logged_in?
end
詳細については、this Railscasts episodeを参照してください。
ライアンの優れた答えに1点を追加するだけです。
:あなたは東部標準時に設定したい場合は、それが利用可能なオプションのリストを取得するには、以下の時間帯のいずれかをconfig.time_zone = 'Eastern Time (US & Canada)'
利用になり
config.time_zone = 'EST'
ではないでしょう
rake time:zones:all
rake time:zones:local
rake time:zones:us