查看datetime 文档,我似乎无法理解seconds属性与timedelta对象上使用的方法total_seconds()之间的区别。只是精确吗?前者是整数,后者是浮点?还是我漏掉了什么?
发布于 2018-08-02 11:55:57
seconds是一天内的秒数,单位为0,86399。total_seconds是转换为秒的整个时间增量,可以是任意值,例如一周的604800.0或100毫秒的0.1。
发布于 2020-07-17 13:33:01
您可以从天、秒、微秒、毫秒、分钟、小时和周构建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()是timespan的有效表示形式。它将所有三个属性合并为一个数字。
https://stackoverflow.com/questions/51652952
复制相似问题