使用dateutil.parser解析不完整的日期时,如何将日期设置为1?

时间:2015-12-10 14:41:49

标签: python python-2.7 date python-dateutil

当我使用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 个答案:

答案 0 :(得分:8)

您可以传递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 documentation

  

default - 默认的datetime对象,如果这是一个datetime对象   而不是Nonetimestr中指定的元素替换了d3中的元素   默认对象。