为什么 timedelta 函数 return 0 秒时 datetimes 是完美的天数?

Why does timedelta function return 0 seconds when datetimes are perfect number of days apart?

end_time = datetime.datetime.utcnow() start_time = end_time - datetime.timedelta(days=14)

(end_time - start_time).seconds = 0 (end_time - start_time).days = 14

奇怪的是,如果我从时间增量 add/subtract 秒后得到预期响应。

时差14天0秒

diff = end_time - start_time
diff

给出:

datetime.timedelta(14)

一秒:

s1 = datetime.timedelta(seconds=1)

现在:

diff - s1

给出:

datetime.timedelta(13, 86399)

也就是 13 天 86399 秒。

我不太确定你在做什么,但如果你使用

start_time = end_time - datetime.timedelta(days=14, seconds=20)

并输入

(end_time - start_time).seconds

你会得到 20 作为你的答案 还要澄清为什么它返回 0,如果您使用

则返回 timedelta 对象
(end_time - start_time) 

其中秒属性将为 0。

您不能使用

(end_time - start_time).seconds = 20 

因为它是一个只读属性。 如果你想获得总秒数,你可以使用

(end_time - start_time).total_seconds()

如果您需要秒数差异,请调用 timedelta 的 total_seconds()

https://docs.python.org/2/library/datetime.html#datetime.timedelta.total_seconds