Python如何比较两个日期并计算二者之间的间隔天数
Python计算两个日期间隔天数的实现方法
你现有代码的问题是将date.today()提前格式化为了字符串,字符串无法直接做日期差值计算,需要先把两个日期统一转换为date类型对象再做运算。
实现代码
from datetime import date, datetime # 解析到期日字符串为date对象,匹配日/月/年格式 expiry_date = details['expires'] expiry_date_obj = datetime.strptime(expiry_date, "%d/%m/%Y").date() # 直接获取当前日期对象,不要提前转成字符串 today_obj = date.today() # 计算间隔天数,加abs()保证返回正数间隔,不需要可移除 no_of_days = abs((expiry_date_obj - today_obj).days)
效果验证
用你给出的示例测试:
- 到期日:
28/11/2021 - 当前日:
29/11/2021
计算得到的no_of_days值为1,和预期输出一致。
注意事项
- 若需要判断是否到期,可去掉
abs():返回正数代表距离到期还有的天数,返回负数代表已经过期的天数。 - 若
details['expires']返回的日期格式不是日/月/年,需要对应调整strptime方法的第二个格式参数。
内容的提问来源于stack exchange,提问作者Abin M
相关产品推荐
相关产品推荐

