python计算时间差.seconds时超过一天出错_Python:给出错误结果的日期和时间差

我编写了一个简单的代码来检查2个日期时间戳之间的时间差是否超过7天,即604800秒。在

如果以秒为单位的时间超过604800,则应打印“Relax you have time!!!”在

请在下面找到我的代码:import time, datetime, sys, os

start_time = time.time()

from datetime import datetime, timedelta, date

from dateutil.parser import *

datetime1="2018-07-13 03:30:00"

datetime2="2018-07-20 04:30:00"

datetime2=datetime.strptime(datetime2, "%Y-%m-%d %H:%M:%S").date() # this is to convert it into a datetime object

datetime1=datetime.strptime(datetime1, "%Y-%m-%d %H:%M:%S").date() # this is to convert it into a datetime object

difference1 =(datetime2-datetime1).total_seconds()

print("the difference in seconds is "+str(difference1))

if difference1 > 604800: #if the difference is more than 7 days, relax , else start preparing

print("Relax you have time!!!")

else:

print("You need to start preparing!!!!!")

问题:

只有当我将“datetime2”更改为“2018-07-21”时,代码才会以秒为单位计算时间超过604800,这意味着它计算的是舍入天数而不是秒数,然后简单地将舍入的天数转换为秒数,给出错误的答案。在

例如,在上面的代码中,由于“datetime2”实际上与“datetime1”的距离超过604800秒(准确地说是608400秒),输出应该是“Relax you have time!!!”,但我们得到了不同的输出。在

我做了什么来解决这个问题?

到目前为止,我已经看过类似的问题:

你能在我的代码中提出这个问题吗?在

更新:感谢@Tim Peters指出.date()丢弃了小时、分钟和秒。

我只需要丢弃.date()就可以正常工作了。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值