python-3.x - 如何验证输入日期是否为 yyyy-mm-ddTHH:mm:ss.fffZ 格式?
问题描述
我想验证输入日期是否采用“ 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)
如果你想确保它是一个有效的日期/时间,解析它:
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))
推荐阅读
- mysql - 如何解决这个 pom.xml 问题?(与数据库的连接)
- r - R将字符串中的元素更改为不同类型的最新元素
- javascript - 24 次迭代 javascript 循环仅显示 10 个画布
- nunit - 是否可以在执行开始之前在运行时重新排序 NUnit 测试?
- javascript - 在 Promise.all() 中将未定义的方法 promise 添加到稍后要解析的数组
- swagger - Aspnet core 2.2 安装 Swashbuckle.AspNetCore 包后默认路由改为“~/index.html”
- xaml - 什么设置为我提供了以下 xaml 的警告/错误
- regex - 在 SSIS 中使用正则表达式而不是 SQL 查询来清理数据是否更优化?
- javascript - 使用客户端的参数根据用户留在命令中的参数创建自定义嵌入消息(Discord JS)
- javascript - JQuery自动完成返回带有标签和值的数据数组,但不显示标签作为建议