如何在Python中验证日期格式为DD.YY.MMMM?

时间:2018-04-05 08:30:00

标签: python-3.x validation date

我想有一个程序要求有效日期,如05.04.2018或5。4。2018(2018年4月5日)。我试着编写第一个版本来检查日期是否格式为05.04.2018。为什么这种方法会返回AttributeError 以及如何解决它?

# -*- coding: UTF-8 -*-
#!/usr/bin/python
from datetime import datetime

def validate_date():
    try:
        date = input("Give the date of the form DD.MM.YYYY: ")
        valid_date = date.strptime(date, '%d.%m.%Y')
    except ValueError:
        raise ValueError("The date must be of the form DD.MM.YYYY")
    except SyntaxError:
        raise SyntaxError("Wrong syntax")

if __name__ == "__main__":
    alkuaika = validate_date()

输出

Give the date of the form DD.MM.YYYY: 12.12.20128
Traceback (most recent call last):
  File "koe.py", line 15, in <module>
    alkuaika = validate_date()
  File "koe.py", line 8, in validate_date
    valid_date = date.strptime(date, '%d.%m.%Y')
AttributeError: 'str' object has no attribute 'strptime'

1 个答案:

答案 0 :(得分:0)

当你使用input()函数时,你必须用引号发送数据,“05.09.1990”将起作用,但是05.09.1990将无效,这会在解析时抛出“意外的EOF”错误,并且由偶数如果通过引号发送,则字符串数据类型不具有strptime方法。