Python如何将datetime计算得到的时间差天数转换为整数?
问题解决方法
报错的根本原因:两个datetime类型对象做减法得到的diff是datetime.timedelta类型,并非数值类型,因此直接传入int()方法会触发类型错误,和你之前猜测的NoneType无关。
最简转换方案
你不需要做额外复杂操作,timedelta对象自带days属性,可直接返回整数格式的天数,刚好匹配你补充的「diff对应整数天数」的场景,修改后的代码如下:
from datetime import datetime, timezone from dateutil import parser diff = now - obj['LastModified'] daysLeft_to_delete = 1000 - diff.days
补充适配方案
如果后续遇到非整天数的场景,需要按实际时长折算天数,可以先通过total_seconds()方法获取timedelta对应的总秒数,除以一天的总秒数86400后再转int即可:
# 适用非整天数场景,自动向下取整 days = int(diff.total_seconds() / 86400)
内容的提问来源于stack exchange,提问作者cosmos-1905-14
相关产品推荐
相关产品推荐

