我想为我们的测试目的创建UTC + n的时区定义而不进行任何DST更改,但是我还没想出如何做到这一点。我正在使用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