テスト目的で、DST を変更せずに UTC+n のタイムゾーン定義を作成したいのですが、その方法がわかりません。私は ActiveSupport::TimeZone を使用していますが、プログラムで拡張できないタイム ゾーンのリストがハードコードされているようです。
特に、新しいタイムゾーンを作成しようとしても、常に DST 情報が欠落しています。基準として既存のタイムゾーンを指定すると、代わりに指定したタイム オフセットが無視されます。
以下は、UTC + 1でタイムゾーンを作成しようとしたいくつかの試みです:
> ActiveSupport::TimeZone[1].now
=> Tue, 06 Aug 2013 12:39:35 CEST +02:00
> ActiveSupport::TimeZone.create("UTC", 3600).now
=> Tue, 06 Aug 2013 10:39:40 UTC +00:00
> ActiveSupport::TimeZone.create("foo", 3600).now
TZInfo::InvalidTimezoneIdentifier: cannot load such file -- tzinfo/definitions/foo
> ActiveSupport::TimeZone.create("foo", 3600, TZInfo::Timezone.get("UTC")).now
=> Tue, 06 Aug 2013 10:39:48 UTC +00:00