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

如何在Python中将格式为2018-04-24T16:42:17Z的datetime字符串转为datetime对象?

解决ISO格式Datetime字符串转Datetime对象的问题

嘿,你遇到的错误是因为用的格式串和输入的Datetime字符串完全不匹配哦!你输入的是ISO 8601格式的字符串2018-04-24T16:42:17Z,但你用的'%b %d %Y %I:%M%p'是对应类似"Apr 24 2018 04:42PM"这种格式的,自然会解析失败。

下面给你几种正确的解决方法:

方法一:使用strptime匹配正确格式

直接用和输入字符串完全对应的格式串即可:

import datetime
# 格式串中的T和Z是固定字符,直接写进去;%H是24小时制的小时
dt_object = datetime.datetime.strptime('2018-04-24T16:42:17Z', '%Y-%m-%dT%H:%M:%SZ')
print(dt_object)
# 输出:2018-04-24 16:42:17

方法二:Python 3.7+ 用fromisoformat更便捷(推荐)

Python 3.7及以上版本支持fromisoformat方法,专门处理ISO格式的时间字符串,不过需要先处理末尾的Z(代表UTC时区):

import datetime
dt_str = '2018-04-24T16:42:17Z'
# 如果需要保留UTC时区信息,把Z替换为+00:00
dt_with_tz = datetime.datetime.fromisoformat(dt_str.replace('Z', '+00:00'))
print(dt_with_tz)
# 输出:2018-04-24 16:42:17+00:00

# 如果不需要时区,直接去掉Z即可
dt_without_tz = datetime.datetime.fromisoformat(dt_str.replace('Z', ''))
print(dt_without_tz)
# 输出:2018-04-24 16:42:17

解析成功后,你就可以用strftime方法把datetime对象转换成任何你需要的格式啦,比如:

# 转换成"YYYY年MM月DD日 HH:MM"格式
print(dt_object.strftime('%Y年%m月%d日 %H:%M'))
# 输出:2018年04月24日 16:42

内容的提问来源于stack exchange,提问作者Boudhayan Dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:31:28