Python只解析iso8601日期时间格式?

Python只解析iso8601日期时间格式?,python,Python,我正在编写一个API,我想接受ISO8601格式的日期和时间。我只想接受那种格式。目前我使用的是dateutil,但其解析函数接受与ISO8601无关的所有格式。我现在有一个简单的正则表达式来检查格式,但是实际的标准允许比我的正则表达式做的更多 是否有一个简单的函数/模块提供了一种仅解析8601个格式化日期/时间的方法?您可以使用,如果无法按照您指定的格式进行解析,则会出现错误: from datetime import datetime def parse_8601(s): """P

我正在编写一个API,我想接受ISO8601格式的日期和时间。我只想接受那种格式。目前我使用的是
dateutil
,但其解析函数接受与ISO8601无关的所有格式。我现在有一个简单的正则表达式来检查格式,但是实际的标准允许比我的正则表达式做的更多

是否有一个简单的函数/模块提供了一种仅解析8601个格式化日期/时间的方法?

您可以使用,如果无法按照您指定的格式进行解析,则会出现错误:

from datetime import datetime

def parse_8601(s):
    """Parses date string if in an ISO 8601 format, else returns None."""
    for f in ["%Y-%m-%dT%H:%M:%S", ...]: # acceptable formats
        try:
            return datetime.strptime(s, f)
        except ValueError:
            pass

搜索它有那么难吗?它有“它的不同之处”部分,这意味着它允许一些非ISO8601格式的文件通过。谷歌搜索ISO8601格式的正则表达式让我想到了这样一个问题:。其中一个答案的答案建议该答案的答案是建议本次regex的以下一个答案中的一个答案建议该答案的答案是该答案的其中一个答案建议本本本次regex:://^(//^::://^((///^((其中一个答案之一的一个答案之一的答案之一)的答案之一是该答案中的一个答案之一的答案之一建议该答案之一是本本本本答案中的答案之一::::::::://///////^(((0[0[1[1[1-1-1-1-1-1-1-1-9[1-1-1-1-1-1-9)1[1[0[1-1-1[0[0[0[0-1-1-1-2[0-1-1[0[0-1-1[0-1-2[0-1-1[0-2[0-0-1-1-[0-3](:?)[0-5]\d]、[24\:-00]([\,]\d+(?!:)?([17[0-5]、[0-5]、[d]([\,]\d+)([zZ]([\+-])([01]\d | 2[0-3]):([0-5]\d])?$/@edA-qamart-ora-y代码已打开,您可以修复它。