如何验证输入日期是否为 yyyy-mm-ddTHH:mm:ss.fffZ 格式?
How to validate if an input date is in yyyy-mm-ddTHH:mm:ss.fffZ format?
我想验证输入日期的格式是否为“yyyy-mm-ddTHH:mm:ss.fffZ”。你能建议我如何验证日期吗?
示例:2021-04-16T02:30:00.234Z
def validate_date(date):
#code which will validate the date
您可以根据正则表达式检查字符串:
import re
def check_format(datestring, _pat=re.compile("[0-9]{4}-[0-9]{2}-[0-9]{2}T([0-9]{2}:){2}[0-9]{2}.[0-9]{3}Z")):
# "yyyy-mm-ddTHH:mm:ss.fffZ"
return re.match(_pat, datestring)
如果您想确保它是 有效 date/time,请解析它:
from datetime import datetime
def valid_date(datestring):
if check_format(datestring):
try:
return datetime.fromisoformat(datestring.replace('Z', '+00:00'))
except ValueError:
return False # invalid date/time string
return False # unaccepted format
..并测试它:
for d in ("2021-01-01T00:00:00.000Z", # ok
"2021-01-01Z00:00:00.000T", # nok
"2021-01-01T00:00:00.000000Z", # nok
"2021-01-01T00:00:00.000+00:00"): # nok
print(d, "->", valid_date(d))
我想验证输入日期的格式是否为“yyyy-mm-ddTHH:mm:ss.fffZ”。你能建议我如何验证日期吗?
示例:2021-04-16T02:30:00.234Z
def validate_date(date):
#code which will validate the date
您可以根据正则表达式检查字符串:
import re
def check_format(datestring, _pat=re.compile("[0-9]{4}-[0-9]{2}-[0-9]{2}T([0-9]{2}:){2}[0-9]{2}.[0-9]{3}Z")):
# "yyyy-mm-ddTHH:mm:ss.fffZ"
return re.match(_pat, datestring)
如果您想确保它是 有效 date/time,请解析它:
from datetime import datetime
def valid_date(datestring):
if check_format(datestring):
try:
return datetime.fromisoformat(datestring.replace('Z', '+00:00'))
except ValueError:
return False # invalid date/time string
return False # unaccepted format
..并测试它:
for d in ("2021-01-01T00:00:00.000Z", # ok
"2021-01-01Z00:00:00.000T", # nok
"2021-01-01T00:00:00.000000Z", # nok
"2021-01-01T00:00:00.000+00:00"): # nok
print(d, "->", valid_date(d))