我在python中遇到了一个非常奇怪的bug。在
from dateutil import parser
string = "March 2008"
parser.parse(string)
datetime.datetime(2008, 3, 30, 0, 0)
string = "February 2008"
parser.parse(string)
回溯(最近一次呼叫):
File "", line 1, in File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/dateutil/parser.py", line 697, in parse return DEFAULTPARSER.parse(timestr, **kwargs) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/dateutil/parser.py", line 310, in parse ret = default.replace(**repl) ValueError: day is out of range for month
我知道我可以在字符串中添加一天以使解析器正常工作,但是我不知道为什么dateutil在2月份没有日期的情况下不能工作,而它每隔一个月就可以工作一次。在
问题是,解析字符串中不存在的任何字段都是从当前日期获取的。在
请注意,“2008年3月”返回了2008年3月30日,因为您在2014年7月30日运行了它。在
同样地,“三月”也就是2014年3月30日。在
所以,“2008年2月”会给你2008年2月30日,这当然是无效的。在
这是一个有趣的。在
从dateutil.parser公司名称:
基本上,如果不提供日期,任何缺少日期的日期字符串都将默认为当前日期。碰巧是今天的第30天,二月当然没有。这可能被认为是dateutil中的一个bug。在
相关问题 更多 >
编程相关推荐