You need to enable JavaScript to run this app. Python使用strptime转换带T、Z和微秒的字符串时间戳为datetime对象报错
优惠活动
大模型
产品
解决方案
定价
更多

Python使用strptime转换带T、Z和微秒的字符串时间戳为datetime对象报错

解析失败的核心原因
  • 年份占位符使用错误:%y 对应两位短年份(如21代表2021年),无法匹配四位长年份2021,长年份需使用%Y占位符
  • 缺失小数秒(微秒)的匹配规则:时间戳在秒数后附带了微秒段.60918,原格式化串没有对应这部分的占位符,会导致字符串长度完全不匹配
  • 关于T、Z字符的说明:二者是ISO 8601时间格式的固定字面标记,不需要特殊转义,只要在格式化串中保持和时间戳一致的位置即可,原代码里这两个字符的位置写法本身没有问题
修正后可直接运行的代码
import datetime

# 修正点:将%y替换为%Y,补充微秒段的匹配占位符.%f
formater = "%Y-%m-%dT%H:%M:%S.%fZ"
str_timestamp = "2021-03-13T18:27:37.60918Z"
timestamp = datetime.datetime.strptime(str_timestamp, formater)

print(timestamp)
运行输出
2021-03-13 18:27:37.609180

补充说明:Python内置的%f占位符可自动适配1-6位长度的小数秒,即便后续遇到秒后附带3位毫秒值、6位微秒值的同类时间戳,也无需修改格式化串即可正常解析。


内容的提问来源于stack exchange,提问作者Brandon Nadeau

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 17:27:04