两个日期之间的月差

时间:2018-10-16 04:35:09

标签: python python-3.x

我有两个日期,格式为Building synchronization state... Starting synchronization... Copying s3://input/0000 [0/1 files][ 1.0 MiB/ 5.1 MiB] (number here)% Done ,另一个日期是相同的格式,a = Timestamp('2022-07-01 00:00:00')

所以我试图找出两者之间的月份差,我的做法是

b = Timestamp('1993-09-01 00:00:00')

哪个给出值relativedelta(a,b).years * 12 ,但实际差是336。请让我知道我出了什么问题,请纠正我。

2 个答案:

答案 0 :(得分:2)

您可以使用to_period()将日期四舍五入为月,然后减去结果

a = pd.Timestamp('2022-07-01 00:00:00')
b = pd.Timestamp('1993-09-01 00:00:00')

months = a.to_period('M') - b.to_period('M')

print(months) # 346

答案 1 :(得分:0)

之所以会出现短缺,是因为relativedelta为您提供了“完整”的年份,即从1993-09-012021-09-1,因此您错过了{ {1}}和2021-09-01。您当前代码的一个简单修改就是添加这样的月份:

2022-07-01

给出正确的结果relativedelta(a,b).years * 12 + relativedelta(a,b).months 个月。