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

为什么Python datetime对象没有millisecond(毫秒)单位属性?

Python timedelta无毫秒属性的原因

你拿到的时间差diff是datetime.timedelta类型,这个类型的底层设计就只有days、seconds、microseconds三个存储字段,没有单独的毫秒属性是官方刻意做的设计取舍,原因主要有两点:

  • 避免属性冗余:毫秒和微秒是固定1:1000的换算关系,直接通过微秒计算毫秒的成本极低,不需要额外单独维护一个毫秒属性,减少不必要的存储和同步开销
  • 避免计算歧义:如果同时提供微秒和毫秒两个属性,很容易出现属性修改后不同步的问题,反而会引入更多不易排查的时间计算错误

如果你需要获取毫秒单位的耗时,可以直接通过现有属性换算:

# 仅获取不足1秒部分的毫秒数
ms_part = diff.microseconds // 1000

# 获取完整的总耗时毫秒数(包含天、秒部分的总时长)
total_ms = diff.total_seconds() * 1000

额外提示:你当前代码里直接打印diff.microseconds的写法存在漏洞:这个属性仅返回时间差中不足1秒的微秒数,如果你的代码运行耗时超过1秒,打印出来的数值会远小于真实总微秒数,建议优先用total_seconds()方法计算总耗时。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:18:03