为了账号安全,请及时绑定邮箱和手机立即绑定

以微秒为单位的时差未按预期工作

以微秒为单位的时差未按预期工作

手掌心 2021-12-16 16:07:30
我试图获得两个日期时间之间的差异,但我不知道为什么在尝试获取微秒时我得到 0:from dateutil.parser import parsex = parse("2019-03-25T17:33:08.829-03:00")y = parse("2019-03-25T18:07:08.829-03:00")result = y - xprint(result.microseconds) // prints 0尝试过: Python - 以毫秒为单位的时间差对我不起作用 和 Python 速度测试 - 时间差 - 毫秒没有运气。我在这里做错了什么?
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

您链接的帖子的答案之一说:

请注意,c.microseconds仅返回 timedelta 的微秒部分!出于计时目的,请始终使用c.total_seconds().

如果您想要微秒部分,您还期望什么?您的两个日期的秒数的小数部分相等,因此差异为 0。

否则,使用result.total_seconds() * 1e6 + result.microseconds.


查看完整回答
反对 回复 2021-12-16
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

您没有计算以微秒为单位的差异。相反,您找到了 34 分钟的时间差,并要求提供该差异的微秒部分。时差是0:34:00。在这个数字中,除了分钟之外的所有组件都是 0。


要查看此效果,请将这个简单的跟踪代码插入到您的程序中:


print(result, type(result))

print(x, type(x))

print(y, type(y))

输出:


2019-03-25 17:33:08.829000-03:00 <class 'datetime.datetime'>

2019-03-25 18:07:08.829000-03:00 <class 'datetime.datetime'>

0:34:00 <class 'datetime.timedelta'>

您需要获取整个timedelta 并将其转换为微秒。既然您看到了问题,我敢打赌您可以自行解决。:-)


查看完整回答
反对 回复 2021-12-16
  • 2 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信