看日期时间docs,似乎似乎无法得到属性seconds
和在timedelta对象上使用的方法total_seconds()
之间的区别。只是精度?开始前者是 int ,而后者是 float ?还是我错过了什么?
答案 0 :(得分:12)
seconds
是一天中的秒数,以[0,86399]为单位。 total_seconds
是转换为秒的整个时间增量,可以是任何值,例如604800.0(一周)或0.1(100毫秒)。
答案 1 :(得分:1)
您可以根据天,秒,微秒,毫秒,分钟,小时和周来构造timedelta
。请注意这些参数的顺序,这绝对没有用,可能是历史原因造成的。
在内部,timedelta
结构仅由天,秒和微秒组成。这些是timedelta
建立后可以访问的属性。即使您使用小时,分钟等来构造对象,该信息也消失了。
import datetime
t = datetime.timedelta(hours=2, minutes=30)
print(t.seconds)
如果秒数大于86400(24 * 60 * 60),它们将溢出一天:
import datetime
t = datetime.timedelta(hours=24, minutes=1)
print(t.seconds)
print(t.days)
因此,timespan.seconds
相当无用,因为它只是事实的一部分,没有其他两个组成部分就毫无意义。 timespan.days
和timespan.microseconds
也是如此。他们应该确实是内部人员,因此必须遵守信息隐藏的原则。
total_seconds()
是时间跨度的有效表示。它将所有3个属性组合为一个数字。