为什么 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
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