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

我试图获得两个日期时间之间的差异,但我不知道为什么在尝试获取微秒时我得到 0:


from dateutil.parser import parse


x = parse("2019-03-25T17:33:08.829-03:00")

y = parse("2019-03-25T18:07:08.829-03:00")


result = y - x

print(result.microseconds) // prints 0

尝试过: Python - 以毫秒为单位的时间差对我不起作用 和 Python 速度测试 - 时间差 - 毫秒


没有运气。


我在这里做错了什么?


手掌心
浏览 162回答 2
2回答

哈士奇WWW

您链接的帖子的答案之一说:请注意,c.microseconds仅返回 timedelta 的微秒部分!出于计时目的,请始终使用c.total_seconds().如果您想要微秒部分,您还期望什么?您的两个日期的秒数的小数部分相等,因此差异为 0。否则,使用result.total_seconds() * 1e6 + result.microseconds.

MMMHUHU

您没有计算以微秒为单位的差异。相反,您找到了 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 并将其转换为微秒。既然您看到了问题,我敢打赌您可以自行解决。:-)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python