Parser.parse меняет часовой пояс на неправильный

Я использую from dateutil import parser для анализа ввода, но по какой-то причине он возвращает мне неправильный часовой пояс.

Мой код: parser.parse(input_date)

Вход: Tue May 01 2018 13:23:00 GMT+0200 (CEST)

Выход: 2018-05-01 13:23:00-02:00

Кто-нибудь знает, почему метод синтаксического анализа изменяет часовой пояс +2 на -2?

2
0
177
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это интерпретируется как смещение стиля POSIX, которое указывается способом, инвертированным по сравнению с тем, что вы ожидаете. См. документация на tzstr.

Вы можете видеть, что для этого используется открытый выпуск # 70 на трекере.

На данный момент ваши лучшие варианты зависят от того, как выглядят ваши данные. Если вы сами генерируете строки, их проще всего изменить на другой формат. Если вы разбираете произвольные строки, лучшим вариантом может быть написание пользовательской функции tzinfos или ручное обнаружение этой ситуации и ее последующее исправление.

Ответ принят как подходящий

Поскольку проблема открыта на github, как сказал Пол, мне пришлось принять индивидуальное решение. Я проанализировал ввод с помощью re и изменил его с: Tue May 01 2018 13:23:00 GMT+0200 (CEST) в Tue May 01 2018 13:23:00 +0200, у dateutil.parser.parse не было проблем с синтаксическим анализом этого формата.

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