Python:时间差中的total_seconds()与seconds

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

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值