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

I Z*_*I Z 4 python date python-2.7 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)
Run Code Online (Sandbox Code Playgroud)

有没有办法改变这一点,以便将这一天自动设置1为这样的不完整案例?

fal*_*tru 10

您可以传递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
Run Code Online (Sandbox Code Playgroud)

根据dateutil.parser.parse文件:

default- 默认日期时间对象(如果这是日期时间对象),而不是默认对象None中的timestr替换元素中指定的元素.

  • 有没有办法只定义当天的默认值?我的期望是对于这种情况 `parse("2014 Apr") # 2014-01-01 00:00:00` (2认同)