Как установить день на 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
заменить элементы в объекте по умолчанию.