访问python dateutil中的relativedelta值

3 投票
1 回答
1377 浏览
提问于 2025-04-20 16:18

我刚开始学习Python,遇到了一个小问题,网上找了半天也没找到答案。我运行了以下代码:

from dateutil import relativedelta as rdelta
def diff_dates(date1, date2):
    return rdelta.relativedelta(date1,date2)

d1d2是两个不同的日期

years = diff_dates(d2,d1)

print "Years: ", years

打印出来的年份值是我期待的正确值。我的问题是,我需要访问这些值并与其他一些值进行比较。不管我怎么尝试访问数据,总是会出现类似的错误:

AttributeError: relativedelta instance has no __call__ method

我需要获取年份、月份和日期,任何帮助都将非常感谢。

1 个回答

3

你得到的这个对象,叫做 years,里面包含了所有的信息。这个对象有一些属性,里面存着你想要的值:

In [12]: d = rdelta.relativedelta(datetime.datetime(1998, 10, 20, 1, 2, 3), datetime.datetime(2001, 5, 3, 3, 4, 5))

In [13]: d
Out[13]: relativedelta(years=-2, months=-6, days=-14, hours=-2, minutes=-2, seconds=-2)

In [14]: d.years
Out[14]: -2

In [15]: d.months
Out[15]: -6

撰写回答