如何移除Python日期差输出中的‘0:00:00’?
解决方法
两个date对象相减得到的是timedelta类型,直接打印会默认显示完整的时间部分(0:00:00),要移除它只需要提取timedelta的天数属性即可,下面是两种常用方式:
方法1:直接访问days属性(推荐)
timedelta对象自带days属性,直接获取这个整数就能得到纯天数,这是最稳定可靠的方式:
修改代码中的print语句:
print("There are", days_between.days, "days between", earlier_date, "and", later_date)
完整修改后的代码:
from datetime import date import random earlier_date = date(2017, 6, random.randint(1, 25)) later_date = date(2017, 6, random.randint(earlier_date.day + 1, 28)) days_between = later_date - earlier_date print("There are", days_between.days, "days between", earlier_date, "and", later_date)
运行后输出示例:
There are 3 days between 2017-06-05 and 2017-06-08
方法2:字符串分割(仅作参考)
如果出于特殊需求不想用属性,也可以把timedelta转成字符串后分割,只保留天数部分:
print("There are", str(days_between).split(',')[0], "days between", earlier_date, "and", later_date)
这种方法依赖timedelta的默认字符串格式,一旦格式变动就会失效,因此优先推荐方法1。
内容的提问来源于stack exchange,提问作者DavidSeoul
相关产品推荐
相关产品推荐

