結論
config.time_zone の設定は config/initializers/* 下ではなく、config/application.rb に書く。
経緯
たぶん Rails 5 から、config/application.rb に下記のような記述があって、素直に config/initializers/*.rb 下に設定を書いていた。
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
デフォルトのタイムゾーンの設定も config/initializers/time_zone.rb というファイルを作って Rails.config.application.config.time_zone = "Tokyo" のように書いてたんだけど、どうも効いていない (Time.zone が UTC のまま)。
コードを追ってみると、activesupport/lib/active_suport/railtie.rb の initializer "active_support.initialize_time_zone" で Time.zone_default を設定している。
このコードは config/initializers/* より早い段階で実行されるようなので、それより早い段階で time_zone を設定する必要がある。
結果 (Rails 4 までのコメント通り) config/application.rb で設定するのが正解ぽい。
環境
- Rails 5.0.2