San*_*ago 29 python time datetime date strptime
我正在尝试初始化这样的时间对象:
t = datetime.time(0,0,0)
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
descriptor 'time' requires a 'datetime.datetime' object but received a 'int'
Run Code Online (Sandbox Code Playgroud)
我有这些东西进口了
import datetime
from datetime import datetime, date, time
import time
Run Code Online (Sandbox Code Playgroud)
它们似乎有点多余,所以我想知道这是否是导致问题的原因
我也在使用strptime方法和combine方法
earliest = datetime.combine(earliest, t)
value = datetime.strptime(value, format)
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 34
您可以创建没有任何值的对象:
>>> import datetime
>>> datetime.time()
datetime.time(0, 0)
Run Code Online (Sandbox Code Playgroud)
但是,您从模块导入了类 datetime,替换了模块本身:
>>> from datetime import datetime
>>> datetime.time
<method 'time' of 'datetime.datetime' objects>
Run Code Online (Sandbox Code Playgroud)
这有不同的签名:
>>> datetime.time()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: descriptor 'time' of 'datetime.datetime' object needs an argument
>>> datetime.time(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'int'
Run Code Online (Sandbox Code Playgroud)
导入整个模块,或导入包含的类,但不要混合和匹配.依照:
import datetime
import time
Run Code Online (Sandbox Code Playgroud)
如果你需要两个模块.
san*_*247 15
时间的构造函数是:
class datetime.time(hour[, minute[, second[, microsecond[, tzinfo]]]])
Run Code Online (Sandbox Code Playgroud)
(来自http://docs.python.org/library/datetime.html#time-objects)
这对我有用:
In [1]: import datetime
In [2]: t = datetime.time(0, 0, 0)
In [3]: print t
00:00:00
Run Code Online (Sandbox Code Playgroud)
事实上,你是import一个冲突datetime的人datetime.你可能意味着time,除了你也是 import冲突的time.那怎么样:
import datetime as dt
Run Code Online (Sandbox Code Playgroud)
和
t = dt.time(0, 0, 0)
Run Code Online (Sandbox Code Playgroud)