Как использовать разбор строки стрелки и одновременно установить часовой пояс?

Я хотел бы, используя arrow, чтобы разобрать даты из строк. Я делаю это задокументированным способом:

>>> arrow.get('2013-05-05 12:30:45', 'YYYY-MM-DD HH:mm:ss')
<Arrow [2013-05-05T12:30:45+00:00]>

Строка анализируется с часовым поясом +00:00, Можно ли форсировать другой часовой пояс для этой строки?

Преобразование в местный часовой пояс впоследствии

>>> arrow.get('2013-05-05 12:30:45', 'YYYY-MM-DD HH:mm:ss').to('local')
<Arrow [2013-05-05T14:30:45+02:00]>

не является правильным решением, так как дата сначала анализируется +00:00, затем преобразуется в другой часовой пояс - и час изменяется соответственно (что является ожидаемым поведением для .to())

2 ответа

Решение

Переходя tzinfo=tz.tzlocal() в методе get сделаем это:

>>> import arrow
>>> from dateutil import tz
>>> arrow.get('2013-05-05 12:30:45', 'YYYY-MM-DD HH:mm:ss', tzinfo=tz.tzlocal())
<Arrow [2013-05-05T12:30:45+02:00]>

С версией 1.2.3+ вы можете просто использовать'local'дляtzinfo:

      arrow.get('2013-05-05 12:30:45', 'YYYY-MM-DD HH:mm:ss', tzinfo='local')
Другие вопросы по тегам