使用dateutil解析日期时遇到问题

发布于 2021-01-29 14:58:34

我正在使用python-dateutil从字符串中解析日期:

import dateutil.parser
print dateutil.parser.parse('some null string', fuzzy=True).date()
2012-10-18
print dateutil.parser.parse('some 31 Oct 2012 string', fuzzy=True).date()
2012-10-31

我期望的是dateutil.parser.parse('some null string', fuzzy=True).date()引发异常,但它返回的是当前日期。如果在提供的字符串中找不到日期,有人可以告诉我如何避免获取当前日期吗?

提前致谢。

关注者
0
被浏览
89
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    请参阅dateutil文档,特别是解析函数(强调我的):

    此外,可以使用以下关键字参数:

    默认值 如果给出,则它必须是日期时间实例。解析日期中缺少的任何字段都将从该实例复制。 默认值为当前日期,上午00:00:00

    …(剪断)…

    模糊 如果将Fuzzy设置为True,则字符串中的未知标记将被忽略。

    假设您已将设置fuzzyTrue,则不会抛出任何异常,因为它只会忽略所有未知标记。并且,由于default未传递参数,因此将返回当前日期。

    因此,解决方案是要么fuzzy设置为False,以使无效的格式字符串将引发异常;否则,请执行以下操作:或检查返回的日期时间是否等于上午00:00:00的当前日期,以表明转换失败。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看