Python DateTime 减去 TimeDelta 与 TimeDelta 减去 DateTime

Python DateTime minus TimeDelta vs TimeDelta minus DateTime

假设我有日期时间 now:

import datetime
now = datetime.datetime(2019, 10, 3, 1, 57, 3, 939862)

print(now)
2019-10-03 01:57:03.939862

我有一个工作日开始时间 (07:00:00)。

start_biz_dt = datetime.timedelta(hours = 7)

我想计算出从 nowstart of business day 的时间。 即,我想要:

6:03:56.060138

但我显然做不到:

start_biz_dt - now

我可以给 start_biz_dtnow 相同的日期,但是我在不同日期的列中有很多日期时间,所以这可能不是最好的方法。感谢您的帮助。

要找到最近的 07:00:00,所以您可以使用下一个代码:

from datetime import datetime, timedelta

start_of_business_day = datetime.now().replace(hour=7, minute=0, second=0)
if start_of_business_day < datetime.now():
    start_of_business_day += timedelta(days=1)

要计算还剩多少,只需用 start_of_business_day:

替换当前日期时间
sleep_time = start_of_business_day - datetime.now()