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

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

В Mac OS X (без tzinfo-данных)

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 (смещения не включают DST, Лондон в настоящее время сообщает +0 и Мадрид +1, но, как я пишу, оба используют +1 и +2 (BST и CEST))

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

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

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

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

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

Другие вопросы по тегам