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

如何实现字符串格式datetime与datetime.datetime类型相减求秒级差值

解决方法

你手里的时间字符串是标准ISO 8601格式的UTC时间,根据你使用的Python版本选择对应解析方式即可:

  • Python 3.7及以上版本(推荐)
    直接调用datetime.fromisoformat方法处理,只要把字符串末尾的Z替换为+00:00就能直接解析:
from datetime import datetime

# 你的两个时间变量
str_time = "2021-09-06T07:58:19.032Z"
dt_time = datetime(2021, 9, 5, 14, 58, 10, 209675) # 对应你自己的datetime类型变量

# 字符串转datetime对象
parsed_str_time = datetime.fromisoformat(str_time.replace("Z", "+00:00"))
  • Python 3.6及更早版本
    用strptime方法指定格式串解析:
from datetime import datetime

str_time = "2021-09-06T07:58:19.032Z"
parsed_str_time = datetime.strptime(str_time, "%Y-%m-%dT%H:%M:%S.%fZ")

计算秒级差值

计算差值前需要注意时区统一:如果你手里的datetime类型变量是不带时区的朴素对象,大部分场景下都转成朴素对象计算即可:

# 去掉解析后时间的时区信息,和原datetime变量也是朴素对象的话就可以直接相减
parsed_str_time = parsed_str_time.replace(tzinfo=None)
delta = parsed_str_time - dt_time
# 取总秒数,不要直接用delta.seconds,该属性仅返回一天内的秒数,跨天会计算错误
total_seconds = delta.total_seconds()
print(total_seconds)

对应你给出的示例时间计算出来的结果为61208.822325。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:36:01