2012-08-22 27 views
43

Estoy usando strptime para convertir una cadena de fecha en datetime. De acuerdo a la página enlazada, formato, como esto debería funcionar:¿Por qué no funciona el datetime.strptime en este simple ejemplo?

>>> # Using datetime.strptime() 
>>> dt = datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") 

Mi código es:

import datetime 
dtDate = datetime.strptime(sDate,"%m/%d/%Y") 

donde sDate = "07/27/2012" (por ejemplo). (Entiendo, desde la misma página, que %Y es "Año con siglo como número decimal.")

he intentado poner el valor real de SDATE en el código:

dtDate = datetime.strptime("07/27/2012","%m/%d/%Y") 

pero esto no funciona. El error que recibo es: AttributeError: el objeto 'module' no tiene atributo 'strptime'

¿Qué estoy haciendo mal?

+0

¿Cuál es el error que se obtiene? –

+1

Es probable que el error sea que la función no está en el módulo. Pruebe import datetime desde datetime. O invoque como datetime.datetime.strptime – jrdn

+0

@MartijnPieters: gracias. Tan pronto como lo publiqué, me di cuenta de que debería haber agregado eso ... :) – Wikis

Respuesta

46

Debería utilizar datetime.datetime.strptime. Tenga en cuenta que las versiones muy antiguas de Python (2.4 y anteriores) no tienen datetime.datetime.strptime; use time.strptime en ese caso.

+2

¡Eso fue todo, gracias! ¡Estoy usando el Python 2.3 prehistórico! – Wikis

+11

Debe actualizar su versión de Python tan pronto como sea posible. –

6

Porque datetime es el módulo. La clase es datetime.datetime.

import datetime 
dtDate = datetime.datetime.strptime(sDate,"%m/%d/%Y") 
+1

Gracias, pero luego obtengo: ** AttributeError: tipo objeto 'datetime.datetime' no tiene atributo 'strptime' ** – Wikis

+0

@Wikis: ¿tiene otro módulo llamado 'datetime' en su proyecto? –

+0

No. 'datetime' se usa en otro lugar:' now = datetime.datetime.ahora() 'si eso es de alguna ayuda. – Wikis

16

va a importar la fecha y hora del módulo, que no tiene una función strptime.

Ese módulo hace tienen un objeto datetime con ese método sin embargo:

import datetime 
dtDate = datetime.datetime.strptime(sDate, "%m/%d/%Y") 

alternativa, se puede importar el objeto datetime del módulo:

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

Tenga en cuenta que se añadió el método strptime en python 2.5; si está utilizando una versión anterior utilice el código siguiente en su lugar:

import datetime, time 
dtDate = datetime.datetime(*time.strptime(sDate, "%m/%d/%Y")[:6]) 
0

Debe utilizar strftime método estático de la clase de datetimedatetime módulo. Proveedores:

import datetime 
dtDate = datetime.datetime.strptime("07/27/2012", "%m/%d/%Y") 
0

También puede hacer lo siguiente, fecha y hora de importar

from datetime import datetime as dt 

dt.strptime(date, '%Y-%m-%d') 
Cuestiones relacionadas