tzinfo-data + Rails сообщает о неправильном смещении часового пояса для Ирландии

Я вижу некоторые странные результаты, пытаясь получить часовой пояс для Ирландии.

В 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>"]

Затем в Mac OS X с «tzinfo-data» я получаю:

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

Ирландия — GMT+0 (смещение не включает летнее время, Лондон в настоящее время сообщает +0, а Мадрид +1, но, как я пишу, оба они используют +1 и +2 (BST и CEST))

Почему я получаю GMT+1 в Ubuntu или с tzinfo-data?

Редактировать:

Хорошо, у меня есть некоторые результаты без рельсов. Использование 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

person Sam Stickland    schedule 18.10.2018    source источник
comment
Смещения действительно должны включать летнее время. Вы можете попробовать это, например, воспользовавшись гемом timecop, чтобы имитировать другую дату, а затем найти информация о часовом поясе снова.   -  person milgner    schedule 18.10.2018
comment
Но я не вижу смещения часового пояса для других областей. Например: › time_zone_options_for_select.split.select { |opt| opt =~ /Лондон|Мадрид|Париж/ } =› [значение=\Лондон\›(GMT+00:00), Лондон‹/option›, значение=\Мадрид\›(GMT+01:00), Мадрид‹ /option›, value=\Paris\›(GMT+01:00), Paris‹/option›] Фактическое смещение, используемое в этих местах, равно +1, +2 и +2.   -  person Sam Stickland    schedule 18.10.2018


Ответы (1)


Я нашел проблему. Оказывается, Ирландия на самом деле использует отрицательное смещение зимой, а не положительное летом (в настоящее время это единственная страна в мире, которая делает это).

В последнем выпуске часового пояса IANA 2018f правильно используется отрицательное смещение для Ирландии, в то время как в более ранних (выпущенных) версиях использовался другой базовый часовой пояс и положительное смещение летом.

person Sam Stickland    schedule 18.10.2018
comment
БЛАГОДАРЮ ВАС. Я думал, что сегодня схожу с ума из-за различий между запуском тестов на моем Mac локально и на моем сервере Ubuntu в prod. - person Isaiah Fasoldt; 11.05.2020