【问题标题】:Accessing python dateutil relativedelta values访问 python dateutil relativedelta 值
【发布时间】:2014-11-03 00:36:15
【问题描述】:

我对 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

我需要得到年、月和日,任何帮助将不胜感激。

【问题讨论】:

    标签: python relativedelta


    【解决方案1】:

    你得到的对象,你称之为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
    

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      相关资源
      最近更新 更多