tzinfo-data + Rails报告了错误的爱尔兰时区偏移

时间:2018-10-18 19:19:29

标签: ruby-on-rails ruby tzinfo

尝试检索爱尔兰的时区时,我看到一些奇怪的结果。

在Mac OS X上(无tzinfo-data)

include ActionView::Helpers::FormOptionsHelper
time_zone_options_for_select.split.select { |opt| opt =~ /Dublin/ }

=> ["value=\"Dublin\">(GMT+00:00)", "Dublin</option>"]

然后在Ubuntu上我得到:

=> ["value=\"Dublin\">(GMT+01:00)", "Dublin</option>"]

然后,在带有'tzinfo-data'的Mac OS X上,我得到:

=> ["value=\"Dublin\">(GMT+01:00)", "Dublin</option>"]

爱尔兰是GMT + 0(偏移量不包括DST,伦敦当前报告的是+0,马德里+1,但是在我写这两个报告时,它们都是使用+1和+2(BST和CEST))

为什么我在Ubuntu或tzinfo-data上获得GMT + 1?

编辑:

好吧,我得到了一些没有滑轨的结果 使用tzinfo-data 1.2018.4

> require 'tzinfo/data'
> TZInfo::Timezone.get('Europe/Dublin').current_period.utc_offset
=> 0

使用tzinfo-data 1.2018.5

> require 'tzinfo/data'
> TZInfo::Timezone.get('Europe/Dublin').current_period.utc_offset
=> 3600

1 个答案:

答案 0 :(得分:2)

我发现了问题。事实证明,爱尔兰实际上在冬季使用了负偏移,而在夏季没有使用正偏移(目前,爱尔兰是世界上唯一这样做的国家)。

最新的IANA时区版本2018f正确地为爱尔兰使用了负偏移,而较早(已发布)的版本在夏季使用了不同的基本时区和正偏移。