比较两个日期时出错

2024-09-27 21:25:44 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试比较Python中的两个日期。当我运行type()检查时,两者都显示为 <type 'datetime.date'>

然而,当我对这两个日期进行简单检查时,我得到了以下错误:

AttributeError: 'datetime.date' object has no attribute 'date'

谁能告诉我我做错了什么吗。代码如下:

d_today = date.today()
oldestDate = d_today - BDay(750)
avgArray2 = [x for x in avgArray if x[0] >= oldestDate.date()]

print type(oldestDate.date())
print type(avgArray[0][0])

输出和:

^{pr2}$

“avgArray”构建的完整代码:

d_today = date.today()
d_ref = d_today - BDay(66)
lastDateData = dates[0]

avgArray = []

while (d_ref >= lastDateData):
    avg_data = [x for x in stockData_sorted if (x[0] >= d_ref and x[0] <= d_ref + BDay(22))]
    avg_dates = [d[0] for d in avg_data]
    avg_graphData = [d[1] for d in avg_data]

    workingAvg = sum(avg_graphData)/len(avg_graphData)
    avgArray.append((d_today,workingAvg))

    d_today = d_today - BDay(1)
    d_ref = d_ref - BDay(1)

Tags: 代码inreffordatatodaydatetimedate
2条回答

您的'pandas.tslib.Timestamp'不是普通的datetime对象;它没有.date()方法。在

 avgArray2 = [x for x in avgArray
              if datetime.date(x[0].year, x[0].month, x[0].day) >= oldestDate.date()]

如果您已经有datetime.date的两个实例,根据您的输出:

<type 'datetime.date'>
<type 'datetime.date'>

然后错误是调用一个不存在的date方法,只需直接比较它们。在

低,代替

^{pr2}$

只是

if x[0] >= oldestDate

应该能正常工作。在

补充:尽管有误导性的输出x[0]似乎不是adatetime.date,而是熊猫的时间戳(在这种情况下,我无法解释输出)。如果是这样的话

datetime.date(x[0].year, x[0].month, x[0].day) >= oldestDate

可能会更好。在

相关问题 更多 >

    热门问题