2012-09-05 25 views
15

Estoy tratando de inicializar un objeto momento como este:cómo inicializar el tiempo() objeto en Python

t = datetime.time(0,0,0) 

pero estoy consiguiendo este error:

descriptor 'time' requires a 'datetime.datetime' object but received a 'int' 

He estas cosas importadas

import datetime 
from datetime import datetime, date, time 
import time 

Parecen un poco redundantes, así que me pregunto si esto es lo que está causando el problema

También estoy usando el método strptime y el método combino

earliest = datetime.combine(earliest, t) 
    value = datetime.strptime(value, format) 

Respuesta

22

Puede crear el objeto sin ningún valor:

>>> import datetime 
>>> datetime.time() 
datetime.time(0, 0) 

Usted, sin embargo, importó el clase de fecha y hora desde el módulo , reemplazando el módulo en sí:

>>> from datetime import datetime 
>>> datetime.time 
<method 'time' of 'datetime.datetime' objects> 

y que tiene una firma diferente :

>>> 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' 

Cualquiera de importar todo el módulo, o importar las clases contenidas, pero no mezclar y combinar. Siga con:

import datetime 
import time 

si necesita ambos módulos.

+0

El constructor de tres parámetros es igualmente válido, simplemente redundante. http://docs.python.org/library/datetime.html#datetime.time – Ryan

+0

@Martijn ok, entonces, ¿qué debo conservar/cambiar? – Santiago

+0

@Martijn He intentado solo importar fecha y hora, pero cuando hago esto ahora obtengo este error: el objeto 'módulo' no tiene ningún atributo 'strptime' en referencia a la línea: value = datetime.strptime (value, format) – Santiago

5

Es el hecho de que usted es import conflictivo datetime de datetime. Probablemente se refería al time, excepto que es tambiénimport al entrar en conflicto time. Entonces, ¿qué:

import datetime as dt 

y

t = dt.time(0, 0, 0) 
Cuestiones relacionadas