这个问题在这里已经有了答案:
9年前关闭。
我想知道如何获得这种差异的确切月数:
date1 = datetime.strptime(str('2011-08-15 12:00:00'), '%Y-%m-%d %H:%M:%S')
date2 = datetime.strptime(str('2012-02-15'), '%Y-%m-%d')
date2-date1 结果
datetime.timedelta(183, 43200)
我想知道确切的月数,在这种情况下,它应该返回 5 而不是 6(因为小时)
最佳答案
使用 calendar
模块找出每个月有多少天,您可以简单地计算月份。
from calendar import monthrange
from datetime import datetime, timedelta
def monthdelta(d1, d2):
delta = 0
while True:
mdays = monthrange(d1.year, d1.month)[1]
d1 += timedelta(days=mdays)
if d1 <= d2:
delta += 1
else:
break
return delta
关于Python:以月为单位的 2 个日期时间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7015587/