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

2021-10-12T16:00:00.000+02:00属于什么datetime格式?如何解析?

问题解答

你手里的时间字符串2021-10-12T16:00:00.000+02:00属于ISO 8601标准的带毫秒精度、带时区偏移的日期时间格式,之前解析报错的核心原因是使用的格式串和实际字符串结构不匹配:

  • 原字符串包含小数点后的3位毫秒部分,你用的格式串没有匹配该部分的规则
  • 格式串末尾的Z仅用于标识UTC时区,你手里的字符串末尾是+02:00的时区偏移,和Z的规则完全不匹配
正确解析方法

方法1:使用strptime指定正确格式(兼容Python 3.2及以上版本)

正确的格式匹配规则为%Y-%m-%dT%H:%M:%S.%f%z,其中:

  • %f 匹配微秒部分(Python会自动处理3位毫秒补全为6位微秒的逻辑)
  • %z 匹配±HH:MM格式的时区偏移
    代码示例:
import datetime
time_str = "2021-10-12T16:00:00.000+02:00"
a = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S.%f%z')

方法2:直接使用fromisoformat(Python 3.7及以上版本推荐)

Python 3.7新增了原生支持ISO 8601格式解析的方法,不需要手动指定格式串,更简单不易出错:

import datetime
time_str = "2021-10-12T16:00:00.000+02:00"
a = datetime.datetime.fromisoformat(time_str)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:48:04