我一直在使用datetime模块来检查日期,看它们是采用mm/dd/yyy还是mm/dd/yy格式。问题是%d和%m指令不够敏感,无法检测月份或日期是个位数,这是我的要求。在
datetime.strptime('01/01/2001', '%m/%d/%Y')
就像我想要的那样,但是
^{pr2}$
同时生成一个有效的datetime,当我真的希望它抛出一个ValueError时,除非月份和日期是0填充的。有人知道如何设置日期时间格式所需的精度吗?这是可能的还是我应该改为使用regex?在
Tags:
您使用的
datetime
函数不是为了验证输入,只是为了将字符串转换成datetime
对象。就datetime
而言,这两个示例都是合法的字符串输入。在如果您想将用户输入强制为特定格式,我将使用regex-请参阅我的REPL中的示例:
如果要定义返回格式化日期或返回valueError的函数,可以执行以下操作:
^{pr2}$您可以通过重新格式化
datetime
并与原始字符串进行比较来验证字符串是否完全符合格式化字符串:相关问题 更多 >
编程相关推荐