Как использовать разбор строки стрелки и одновременно установить часовой пояс?
Я хотел бы, используя 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')