You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将带Z后缀的datetime字符串转换为datetime对象

带Z后缀ISO时间字符串转datetime对象解决方案

报错原因

Python 标准库的datetime.datetime.fromisoformat()方法在3.11版本之前,不支持直接解析末尾带Z标识的ISO 8601时间字符串,Z是UTC时区的缩写,属于合法的ISO时间格式,但旧版本的fromisoformat仅能识别+00:00格式的时区后缀。

解决方法

方法1:字符串替换(兼容性最好,所有Python3版本通用)

将字符串末尾的Z替换为+00:00,再调用fromisoformat解析,得到带UTC时区信息的datetime对象:

import datetime

raw_time = "2021-11-13T09:20:15.497Z"
dt = datetime.datetime.fromisoformat(raw_time.replace("Z", "+00:00"))

# 如果不需要保留时区信息,可以追加去掉时区的操作
# dt = dt.replace(tzinfo=None)

方法2:使用strptime指定格式解析

直接通过指定时间格式字符串完成解析,该方法得到的是不带时区信息的naive datetime对象:

import datetime

raw_time = "2021-11-13T09:20:15.497Z"
dt = datetime.datetime.strptime(raw_time, "%Y-%m-%dT%H:%M:%S.%fZ")

方法3:升级到Python 3.11及以上版本

Python 3.11版本对fromisoformat做了优化,已经原生支持带Z后缀的ISO时间字符串解析,直接调用即可:

import datetime

raw_time = "2021-11-13T09:20:15.497Z"
dt = datetime.datetime.fromisoformat(raw_time)

内容的提问来源于stack exchange,提问作者Sad Land

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:24:04