我试图从整数创建一个datetime.date
对象,这是我的代码:
datetime.date(2011, 1, 1)
它给了我这个错误:
TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'
答案 0 :(得分:4)
如果您执行以下操作,它将整齐地工作:
//Checks if request has file or not
if ($request->hasFile('pic')) {
//checks if file is uploaded or not
if ($request->file('pic')->isValid()) {
$extension = $request->file('pic')->getClientOriginalExtension();
$imageName = str_random(60);
$request->file('pic')->move(base_path() . 'file/save/location', $imageName.".".$extension);
}
}
但是,如果你这样做:
>>> import datetime
>>> datetime.date(2011,1,1)
datetime.date(2011, 1, 1)
然后
from datetime import datetime
您实际调用的方法是datetime.date(2011,1,1)
,这将失败:
datetime.datetime.date(2011,1,1)
答案 1 :(得分:3)
回答,基于上面非常慷慨的贡献。
问题在于日期时间库包含一个日期时间类,对于不熟悉的人来说有时会让人感到困惑。
总结一下,如果你这样做:
import datetime
datetime.date(2011, 1, 1)
你得到了
>>> datetime.date(2011, 1, 1)
由于您使用的是日期时间库的日期类。但是,如果你这样做
from datetime import datetime
datetime.date(2011, 1, 1)
你会得到
>>>TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'
因为你(无意中)使用了datetime库的datetime类,相当于:
datetime.datetime.date(2011, 1, 1)
并且datetime库的datetime类没有日期方法
答案 2 :(得分:1)
只需使用正确的import
即可设置:
>>> from datetime import date
>>> today = date.today()
>>> today
datetime.date(2016, 3, 4)
>>> date(2016, 3, 4)
datetime.date(2016, 3, 4)
答案 3 :(得分:1)
错误可能是由于您的import statement
。
从以下位置更改:
from datetime import datetime
要:
import datetime
答案 4 :(得分:1)
>>> from datetime import datetime
>>> date = datetime(year=2011,month=1,day=1)
>>> print date
2011-01-01 00:00:00
>>>
官方文件:datetime
Objects