Как установить день на 1 при разборе неполной даты с dateutil.parser?

Когда я использую dateutil.parser для анализа неполной даты, которая пропускает день, я получаю день, установленный на 10 по какой-то причине:

from dateutil.parser import parse
>>> d1 = parse('2008 Apr 2')
>>> d1
datetime.datetime(2008, 4, 2, 0, 0)
>>> d2 = parse('2014 Apr')
>>> d2
datetime.datetime(2014, 4, 10, 0, 0)

Есть ли способ изменить это так, чтобы день автоматически устанавливался на 1 вместо таких неполных дел?

1 ответ

Решение

Вы можете пройти default Ключевой аргумент. Если default указывается, парсер заменит часть по умолчанию на проанализированную дату:

>>> import datetime
>>> from dateutil.parser import parse
>>>
>>> print parse('2014 Apr', default=datetime.datetime(2015, 1, 1))
2014-04-01 00:00:00

В соответствии с dateutil.parser.parse документация:

default - Объект даты и времени по умолчанию, если это объект даты и времени, а не None элементы, указанные в timestr заменить элементы в объекте по умолчанию.

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