首页 >后端开发 >Python教程 >如何在 Python 中高效解析 ISO 8601 日期和时间?

如何在 Python 中高效解析 ISO 8601 日期和时间?

Patricia Arquette
Patricia Arquette原创
2024-12-21 09:31:11372浏览

How Can I Efficiently Parse ISO 8601 Dates and Times in Python?

使用 python-dateutil**

解析 ISO 8601 日期和时间方便解析 ISO 8601 格式的日期和时间字符串,如“2008- 09-03T20:56:35.450686Z”进入Python datetime 类型,请考虑使用 python-dateutil 包的

dateutil.parser.isoparse

函数。

isoparse 函数

isoparse

函数解释各种 ISO 8601 日期和时间字符串,甚至那些不符合 RFC 3339 规范的字符串(例如,没有 UTC 偏移量的字符串或仅日期字符串)。

用法:
>>> import dateutil.parser
>>> dateutil.parser.isoparse('2008-09-03T20:56:35.450686Z')  # RFC 3339 format
datetime.datetime(2008, 9, 3, 20, 56, 35, 450686, tzinfo=tzutc())
>>> dateutil.parser.isoparse('2008-09-03T20:56:35.450686')  # ISO 8601 extended format
datetime.datetime(2008, 9, 3, 20, 56, 35, 450686)
>>> dateutil.parser.isoparse('20080903T205635.450686')  # ISO 8601 basic format
datetime.datetime(2008, 9, 3, 20, 56, 35, 450686)
>>> dateutil.parser.isoparse('20080903')  # ISO 8601 basic format, date only
datetime.datetime(2008, 9, 3, 0, 0)

isoparse**的替代品python-dateutil 包还提供了

dateutil.parser.parse

,它不太严格,可能会尝试解释。为了获得最大的准确性,请考虑使用更严格的解析器。

Python 内置的注意事项

datetime.datetime.fromisoformat**在 3.10 之前的 Python 版本中,

fromisoformat 不是一个完整的 ISO-8601 解析器。在Python 3.11中,它几乎完全支持ISO 8601,但仍保留一些限制。具体细节请查阅官方文档。

以上是如何在 Python 中高效解析 ISO 8601 日期和时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn