使用Python的dateutil.parser.isoparse解析ISO 8601日期和时间
将ISO 8601日期和时间字符串解析为Python的datetime类型可以是具有挑战性,尤其是在使用 Python 标准库的 strptime 时。
解决方案:使用 python-dateutil 的 isoparse 函数
python-dateutil 包通过其 dateutil.parser.isoparse 函数提供了一个方便的解决方案。 Isoparse 擅长处理各种 ISO 8601 格式,包括:
演示各种 ISO 8601 格式解析的示例:
import dateutil.parser iso_datetime = "2008-09-03T20:56:35.450686Z" print(dateutil.parser.isoparse(iso_datetime)) # datetime with UTC timezone iso_extended = "2008-09-03T20:56:35.450686" print(dateutil.parser.isoparse(iso_extended)) # datetime without timezone iso_basic = "20080903T205635.450686" print(dateutil.parser.isoparse(iso_basic)) # datetime without timezone iso_date = "20080903" print(dateutil.parser.isoparse(iso_date)) # date
附加说明
python-dateutil 还有提供 dateutil.parser.parse,它尝试解释无效的 ISO 8601 串。但是,为了进行更严格的解析,请考虑其他选项,例如正则表达式或专用的 ISO 8601 解析器。
Python 3.7 引入了 datetime.datetime.fromisoformat,它解析 ISO 8601 字符串的子集。在Python 3.11中,它支持几乎所有有效的ISO 8601格式。然而,在灵活性和某些边缘情况的解释方面,它可能仍然与 isoparse 不同。
以上是Python 的'dateutil.parser.isoparse”如何有效处理各种 ISO 8601 日期和时间格式?的详细内容。更多信息请关注PHP中文网其他相关文章!