进口如下:
from datetime import datetime, timedelta
首先,我看到了当下的日期:
foo = datetime.now()
然后我在27小时后得到以下内容:
bar = foo + timedelta(hours=27)
现在我需要测试一下。为此,我使用另一个变量:
baz = bar-foo
现在我测试bar
和foo
之间的差异:
seconds = baz.seconds
hours = seconds/60/60 # which returns 3.0
我添加了27小时,bar
和foo
之间有3小时的差异。
原因是什么?提前谢谢。
答案 0 :(得分:3)
仅检查seconds
对象的timedelta
属性是不够的。
仅在内部存储天,秒和微秒。
依次考虑这些组件:
days = baz.days
seconds = baz.seconds
microsecs = baz.microseconds
print(days, seconds, microsecs, sep=', ')
1, 10800, 0
您需要单独添加这些内容以获得总timedelta
。如果您的目标是提取总秒数,则可以使用total_seconds
方法:
totalsecs = baz.total_seconds() # 97200.0
assert totalsecs / 60 / 60 == 27 # check we have 27 hours