Time difference in microseconds not working as expected
本问题已经有最佳答案,请猛点这里访问。
我试图在两个日期之间得到区别,但我不知道为什么我在尝试获得微秒时得到0:
1 2 3 4 5 6 7 | 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速度测试 - 时差 - 毫秒
没有运气。
我在这里做错了什么?
您链接的帖子的答案之一是:
Be aware that
c.microseconds only returns the microseconds portion of the timedelta! For timing purposes always usec.total_seconds() .
如果你想要微秒部分,你还期待什么? 两个日期的小数部分相等,所以差值为0。
否则,请使用
你没有计算微秒的差异。 相反,您发现时间差为34分钟,并询问该差异的微秒分量。 时差
要查看此效果,请将此简单的跟踪代码插入到您的程序中:
1 2 3 | print(result, type(result)) print(x, type(x)) print(y, type(y)) |
输出:
1 2 3 | 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并将其转换为微秒。 现在您已经看到了问题,我敢打赌您可以自行解决问题。:-)