python - 使用日期时间验证日期
python - validating date with datetime
我正在尝试验证提示给用户的 string
。这个string
应该写成dd/mm/aaaa
的格式并且是一个有效的日期。我认为创建很多 if
来检查是不是很优雅,所以我研究并选择了 datetime
方法。
import datetime
dataInput = input("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
ehDataValida = False
def validaData(dataInput) :
while True :
try :
if dataInput != datetime.datetime.strptime(dataInput, "%d/%m/%Y").strftime("%d/%m/%Y") :
raise ValueError
return False
except ValueError:
print("erro!")
dataInput = input("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
return dataInput
validaData(dataInput)
print(validaData(dataInput))
它不起作用,每次测试我都发现了一个新错误。我缺少什么?在此之后,我将 dataInput.split('/')
并在 listData=[dd, mm, yyyy]
中实现日期
您的输入被读取为整数,例如:如果您输入 12/2/1992,它执行的除法运算为 ((12 / 2) / 1992),结果为零。使用 raw_input 代替
import datetime
dataInput = raw_input("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
ehDataValida = False
def validaData(dataInput) :
try:
datetime.datetime.strptime(dataInput, '%d/%m/%y')
except ValueError:
raise ValueError("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
validaData(dataInput)
试试这个。它应该工作
while True:
try:
dataInput = raw_input("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
date_formatted = datetime.datetime.strptime(dataInput, '%d/%m/%y')
break
except ValueError:
raise ValueError("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
我正在尝试验证提示给用户的 string
。这个string
应该写成dd/mm/aaaa
的格式并且是一个有效的日期。我认为创建很多 if
来检查是不是很优雅,所以我研究并选择了 datetime
方法。
import datetime
dataInput = input("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
ehDataValida = False
def validaData(dataInput) :
while True :
try :
if dataInput != datetime.datetime.strptime(dataInput, "%d/%m/%Y").strftime("%d/%m/%Y") :
raise ValueError
return False
except ValueError:
print("erro!")
dataInput = input("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
return dataInput
validaData(dataInput)
print(validaData(dataInput))
它不起作用,每次测试我都发现了一个新错误。我缺少什么?在此之后,我将 dataInput.split('/')
并在 listData=[dd, mm, yyyy]
您的输入被读取为整数,例如:如果您输入 12/2/1992,它执行的除法运算为 ((12 / 2) / 1992),结果为零。使用 raw_input 代替
import datetime
dataInput = raw_input("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
ehDataValida = False
def validaData(dataInput) :
try:
datetime.datetime.strptime(dataInput, '%d/%m/%y')
except ValueError:
raise ValueError("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
validaData(dataInput)
试试这个。它应该工作
while True:
try:
dataInput = raw_input("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")
date_formatted = datetime.datetime.strptime(dataInput, '%d/%m/%y')
break
except ValueError:
raise ValueError("Insira sua data de nascimento no formato 'dd/mm/aaaa': ")