Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 异常用户输入日期时间_Python_Date_Datetime - Fatal编程技术网

Python 异常用户输入日期时间

Python 异常用户输入日期时间,python,date,datetime,Python,Date,Datetime,如何对此用户输入格式引发异常 data_base = datetime.datetime.strptime(input("Informe a data base (dd/mm/aaaa): "), "%d/%m/%Y") data_base = datetime.date(day=int(data_base.strftime("%d")), month=int(data_base.strftime("%m")), year=int(data_base.strftime("%Y"))) print

如何对此用户输入格式引发异常

data_base = datetime.datetime.strptime(input("Informe a data base (dd/mm/aaaa): "), "%d/%m/%Y")
data_base = datetime.date(day=int(data_base.strftime("%d")), month=int(data_base.strftime("%m")), year=int(data_base.strftime("%Y")))
print("Data base: " + data_base.strftime("%d/%m/%Y"))
我试过了,但我一直得到一个信息:

data_base = datetime.datetime.strptime(input("Informe a data base (dd/mm/aaaa): "), "%d/%m/%Y")
try:
    data_base = datetime.datetime.strptime(str(data_base), "%d/%m/%Y")
except ValueError:
    print("Incorrect format")
data_base = datetime.date(day=int(data_base.strftime("%d")), month=int(data_base.strftime("%m")), year=int(data_base.strftime("%Y")))
print("Data base: " + data_base.strftime("%d/%m/%Y"))

我想你是想做这样的事情:

import datetime

data_base = input("Informe a data base (dd/mm/aaaa): ")
try:
    data_base = datetime.datetime.strptime(str(data_base), "%d/%m/%Y")
except ValueError:
    print("Incorrect format")
else:
    data_base = datetime.date(day=int(data_base.strftime("%d")), month=int(data_base.strftime("%m")), year=int(data_base.strftime("%Y")))
    print("Data base: " + data_base.strftime("%d/%m/%Y"))


我认为阻碍您的是您将
datetime.datetime.strtime
调用留在了
input
调用中,而该调用不在
try
块中。

我不确定您想在这里做什么?您是想引发异常还是捕获异常?对不起。我不知道起跳和接球之间的区别。如果用户没有正确插入日期(dd/mm/yyyy),我只需要显示“格式不正确”。这可能是因为第一个数据库变量返回%d/%m/%Y%H:%m:%s。我尝试将try变量更改为
data\u base=datetime.datetime.strtime(str(数据库),“%d/%m/%Y%H:%m:%s”)
,但运气不好。你能将“Exception”改为“e:`而不是
Exception ValueError:
print(e)
还要查看出现错误的原因。e返回时出现异常:
时间数据“2014-11-12 00:00:00”与格式“%Y/%m/%d%H:%m:%S”不匹配。