将ISO格式的字符串解析为日期。

3

我正在尝试解析

2020-09-18T16:11:03.4411565+00:00

代码

from dateutil import parser
parser.isoparse('2020-09-18T16:11:03.4411565+00:00')

我遇到了以下问题:

ValueError: ISO字符串中有未使用的组件

同时,我正在使用3.6.9版本,所以无法使用 datetime.fromisoformat(date_string) 这个方法。请问应该怎么办?


如果你能使用pandas,那么pd.to_datetime(['2020-09-18T16:11:03.4411565+00:00'], infer_datetime_format=True)可能会有所帮助。 - Deepak Tripathi
2个回答

2
使用 parser.parse(...) 函数。
In [1]: from dateutil import parser                                                                                                                                                                                

In [2]: dt_str = '2020-09-18T16:11:03.4411565+00:00'                                                                                                                                                               

In [3]: parser.parse(dt_str)                                                                                                                                                                                       
Out[3]: datetime.datetime(2020, 9, 18, 16, 11, 3, 441156, tzinfo=tzutc())

1

iso格式接受小数点后六位数字(微秒)。你有七位。

将你的字符串修改为“2020-09-18T16:11:03.441156+00:00”


这在我的情况下有效 2021-05-10T00:00:00-01:30,但这个不行 2021-05-10T00:00:00+01:30。为什么会这样呢? - Chinmaya Pati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接