akh*_*hab 12 python python-2.7 python-dateutil
我使用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
Run Code Online (Sandbox Code Playgroud)
我期待的是dateutil.parser.parse('some null string', fuzzy=True).date()抛出异常,但它返回当前日期.如果在提供的字符串中找不到日期,有人可以告诉我如何避免获取当前日期吗?
提前致谢.
jro*_*jro 15
查看dateutil文档,特别是解析函数(强调我的):
此外,还提供以下关键字参数:
default 如果给定,则必须是datetime实例.解析日期中缺少的任何字段都将从此实例中复制.默认值是当前日期,时间为00:00:00 am.
......(剪辑)......
fuzzy 如果将fuzzy设置为True,则将忽略字符串中的未知标记.
既然你已经设置fuzzy到True,也不例外会被抛出,因为它会简单地忽略所有未知的令牌.并且,由于default参数未通过,将返回当前日期.
因此解决方案将是保持fuzzy设置False,以便无效的格式字符串将引发异常; 或者检查返回的日期时间是否等于00:00:00 am的当前日期,作为转换失败的指示.
| 归档时间: |
|
| 查看次数: |
8503 次 |
| 最近记录: |