1、使用seconds时,如果时间差为负数,会变成86399+(时间差),导致计算错误。原因:seconds只计算时间差,没包含日期,一天的秒数为24*60*60=86400,seconds范围为[0, 86399]
2、total_seconds()是获取两个时间之间的总差,包括了日期
import datetime
time_1 = '2021-09-17 08:45:56'
time_2 = '2021-09-17 08:30:00'
time_1_struct = datetime.datetime.strptime(time_1, "%Y-%m-%d %H:%M:%S")
time_2_struct = datetime.datetime.strptime(time_2, "%Y-%m-%d %H:%M:%S")
print((time_1_struct - time_2_struct).total_seconds()) # 输出:956.0
print((time_1_struct - time_2_struct).seconds) # 输出:956
interval_time = (time_2_struct - time_1_struct).seconds # 输出的结果:85444
total_interval_time = (time_2_struct - time_1_struct).total_seconds() # 输出结果是: -956.0
######日期不同
time_1 = '2021-09-16 08:45:56'
time_2 = '2021-09-17 08:30:00'
time_1_struct = datetime.datetime.strptime(time_1, "%Y-%m-%d %H:%M:%S")
time_2_struct = datetime.datetime.strptime(time_2, "%Y-%m-%d %H:%M:%S")
print((time_1_struct - time_2_struct).total_seconds()) # 输出:-85444.0
print((time_1_struct - time_2_struct).seconds) # 输出:956