gpt4 book ai didi

python - 检查日期时间字符串是否为 ISO 8601 格式

转载 作者:太空狗 更新时间:2023-10-30 00:17:29 26 4
gpt4 key购买 nike

我喜欢用 dateutil.parser.parse 模块解析日期时间字符串。这很简单。但是我在我的代码中注意到我必须检查对象是否确实在 8601 中(并且知道)。

我的结构是:

if parse(datetime).tzinfo==None:
#do something
else:
#make it aware
#do something

我想实现这样的目标:

if <IS-8601>:
if parse(datetime).tzinfo==None:
#do something
else:
#make it aware
#do something
else:
pass

如果我有一个 8601,例如2014-02-28T22:30:00+0200 解析实用程序完成它的工作。

但是,如果我有 2014-03-20 字符串解析,则会在对象上增加时间。这没有错,只是不需要:2014-03-20 00:00:00


那么如何检查一个对象是否在 8601 中呢?如果在 8601 中,它知道吗?我不介意更改为另一个日期时间库。

最佳答案

您可以通过 datetime 模块解析它,并在通过 dateutil.parser.parse 处理之前检查异常 ValueError :

>>> import datetime
>>> datetime.datetime.strptime("2014-03-20", '%Y-%m-%d')
datetime.datetime(2014, 3, 20, 0, 0)
>>> datetime.datetime.strptime("2014-02-28T22:30:00+0200", '%Y-%m-%d')
Traceback (most recent call last):
File "<pyshell#134>", line 1, in <module>
datetime.datetime.strptime("2014-02-28T22:30:00+0200", '%Y-%m-%d')
File "C:\Python33\lib\_strptime.py", line 500, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "C:\Python33\lib\_strptime.py", line 340, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: T22:30:00+0200

关于python - 检查日期时间字符串是否为 ISO 8601 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22140574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com