Использование Python datetime.datetime.strptime на окнах с BST часовой пояс

голоса
2

Мне нужно разобрать много различных дат в различных форматах. У меня возникли проблемы со следующим и спрашивает, если anyopne может объяснить, почему;

Следующие работы по системе Linux:

from datetime import datetime
datetime.strptime('Tue 23 Aug 2011 09:00:07 PM BST','%a %d %b %Y %H:%M:%S %p %Z')

Но работает под окнами он поднимает

ValueError: время данные не соответствует формату

Тем не менее, если я попытаюсь GMT не BST на окнах, она отлично работает;

from datetime import datetime
datetime.strptime('Tue 23 Aug 2011 09:00:07 PM GMT','%a %d %b %Y %H:%M:%S %p %Z')

Есть ли причина, питон не понимает часовой пояс BST под окнами, но он отлично работает под Linux?

благодаря,

Мэтт.

Задан 24/08/2011 в 16:13
источник пользователем
На других языках...                            


1 ответов

голоса
1

На мой взгляд, разбор кода зоны времени из трех букв, как это не является хорошей практикой (если, конечно, у вас нет выбора). Например, «EST» обычно используется в США для UTC-4/5 и также широко используется в Австралии. Таким образом, любая поддержка «EST» должна поэтому быть в зависимости от местности. Это меня не удивило бы, если «BST» было так же неоднозначно.

Я настоятельно рекомендую использовать pytzмодуль , в котором британский гражданское время дается идентификатор строки Europe/Londonи UTC называется Etc/UTC. pytzAPI даст последовательные результаты , независимо от локали пользователя или системы с запущенным приложением.

Если вы работаете на пользовательский интерфейс , который должен быть привязан к локали, или разборе входы с форматами , вы не можете изменить, а затем рассмотреть возможность использования словаря аббревиатур для pytzобъектов часовых поясов. Например: {'BST': 'Europe/London'}. Таким образом, приложение может работать с датами и временем UTC равномерно, что позволит значительно снизить вероятность ошибок.

Ответил 24/08/2011 в 16:50
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more