火星上的回锅肉 · 使用Python更新JSON中的值 - ...· 1 周前 · |
眉毛粗的草稿纸 · Python -更新现有json文件中的项 ...· 1 周前 · |
一身肌肉的煎鸡蛋 · Python: ...· 1 周前 · |
酒量大的西红柿 · Python为什么执行效率低,性能不如其他语 ...· 1 周前 · |
儒雅的豌豆 · python 类 属性 ...· 2 天前 · |
玩手机的火腿肠 · 放荡不羁SVG讲解与实战——Android高 ...· 1 年前 · |
安静的香烟 · viocli update MariaDB ...· 1 年前 · |
爱健身的作业本 · anaconda安装第三方包 - 知乎· 1 年前 · |
我有一个python方法,它接受将日期输入作为字符串进行 。
如何添加验证以确保传递给该方法的日期字符串在ffg中。格式:
'YYYY-MM-DD'
如果不是,方法应该引发某种类型的错误
发布于 2013-06-01 16:23:42
>>> import datetime
>>> def validate(date_text):
datetime.datetime.strptime(date_text, '%Y-%m-%d')
except ValueError:
raise ValueError("Incorrect data format, should be YYYY-MM-DD")
>>> validate('2003-12-23')
>>> validate('2003-12-32')
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
validate('2003-12-32')
File "<pyshell#18>", line 5, in validate
raise ValueError("Incorrect data format, should be YYYY-MM-DD")
ValueError: Incorrect data format, should be YYYY-MM-DD
发布于 2013-06-01 16:21:43
Python
dateutil
库就是为此(以及更多)而设计的。它会自动将其转换为
datetime
对象,如果不能,则会引发一个
ValueError
。
举个例子:
>>> from dateutil.parser import parse
>>> parse("2003-09-25")
datetime.datetime(2003, 9, 25, 0, 0)
如果日期格式不正确,则会引发
ValueError
:
>>> parse("2003-09-251")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 720, in parse
return DEFAULTPARSER.parse(timestr, **kwargs)
File "/Users/jacinda/envs/dod-backend-dev/lib/python2.7/site-packages/dateutil/parser.py", line 317, in parse
ret = default.replace(**repl)
ValueError: day is out of range for month
如果将来需要解析其他格式,
dateutil
也非常有用,因为它可以智能地处理大多数已知格式,并允许您修改自己的规范:
dateutil
parsing examples
。
如果您需要,它还可以处理时区。
基于注释的
更新
:
parse
还接受关键字参数
dayfirst
,该参数控制如果日期不明确,预计是日还是月。默认设置为False。例如。
>>> parse('11/12/2001')
>>> datetime.datetime(2001, 11, 12, 0, 0) # Nov 12
>>> parse('11/12/2001', dayfirst=True)
>>> datetime.datetime(2001, 12, 11, 0, 0) # Dec 11
发布于 2016-05-05 16:10:17
我认为完整的验证函数应该如下所示:
from datetime import datetime
def validate(date_text):
爱健身的作业本 · anaconda安装第三方包 - 知乎 1 年前 |