这个问题在这里已经有了答案:




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/

10-16 08:36