使用 dateutil.parser 解析不完整日期时,如何将日期设置为 1?
How can I set day to 1 when parsing incomplete date with 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
,而不是针对此类不完整的案例?
您可以传递 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
– The default datetime object, if this is a datetime object
and not None
, elements specified in timestr
replace elements in the
default object.
当我使用 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
,而不是针对此类不完整的案例?
您可以传递 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
– The default datetime object, if this is a datetime object and notNone
, elements specified intimestr
replace elements in the default object.