python datetime对象没有属性today错误

13 投票
3 回答
58676 浏览
提问于 2025-04-18 17:31

我有两个不同的日期时间用法:

date=request.GET.get('date','')
    if date:
        date = datetime.strptime(date, "%m/%d/%Y")
        print date
    else:
        date = datetime.date.today()

看起来需要的导入是:

from datetime import datetime
date = datetime.strptime(date, "%m/%d/%Y")

还有

import datetime
date = datetime.date.today()

但我不能同时使用这两个:

from datetime import datetime
import datetime

要么一个覆盖另一个。

如果我只使用其中一个,就会出现错误:对象没有属性 today。

我该如何同时使用这两个日期时间功能呢?

3 个回答

5

在处理日期和时间时,你应该始终直接导入这个模块,这样可以避免产生混淆。

import datetime
date = datetime.datetime.strptime(date, "%m/%d/%Y")
date = datetime.date.today()
7

把代码中的 .date. 去掉应该就能解决问题:

from datetime import datetime

print datetime.strptime("12/31/2000", "%m/%d/%Y")
print datetime.today()

输出结果:

2000-12-31 00:00:00
2014-08-16 22:36:28.593481
18

你可以给导入的名字起个别名,这样可以确保它们被用得不一样。这也是为什么在Python社区,datetime这个模块常常受到一些批评的原因之一。

那么,下面这个呢:

from datetime import datetime as dt
import datetime

这样做会表示两件不同的事情。通过 dir(dt)dir(datetime) 可以看到这一点。

撰写回答