Cadena de fecha de Python para objeto de fecha

¿Cómo convierto una cadena a un objeto de fecha en Python?

La cadena sería: "24052010" (correspondiente al formato: "%d%m%Y" )

No quiero un objeto datetime.datetime, sino más bien un datetime.date.

Puede usar strptime en el paquete datetime de Python:

 >>> datetime.datetime.strptime('24052010', "%d%m%Y").date() datetime.date(2010, 5, 24) 
 import datetime datetime.datetime.strptime('24052010', '%d%m%Y').date() 

Pregunta directamente relacionada:

Que si tienes

 datetime.datetime.strptime("2015-02-24T13:00:00-08:00", "%Y-%B-%dT%H:%M:%S-%H:%M").date() 

y usted obtiene:

 Traceback (most recent call last): File "", line 1, in  File "/usr/local/lib/python2.7/_strptime.py", line 308, in _strptime format_regex = _TimeRE_cache.compile(format) File "/usr/local/lib/python2.7/_strptime.py", line 265, in compile return re_compile(self.pattern(format), IGNORECASE) File "/usr/local/lib/python2.7/re.py", line 194, in compile return _compile(pattern, flags) File "/usr/local/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression sre_constants.error: redefinition of group name 'H' as group 7; was group 4 

y lo intentaste

 <-24T13:00:00-08:00", "%Y-%B-%dT%HH:%MM:%SS-%HH:%MM").date() 

pero todavía obtienes el rastro de vuelta.

Responder:

 >>> from dateutil.parser import parse >>> from datetime import datetime >>> parse("2015-02-24T13:00:00-08:00") datetime.datetime(2015, 2, 24, 13, 0, tzinfo=tzoffset(None, -28800)) 

Si eres perezoso y no quieres pelear con literales de cadena, solo puedes parser módulo de parser .

 from dateutil import parser dt = parser.parse("Jun 1 2005 1:33PM") print(dt.year, dt.month, dt.day,dt.hour, dt.minute, dt.second) >2005 6 1 13 33 0 

Solo una nota al margen , ya que estamos tratando de hacer coincidir any representación de cadena, es 10 veces más lenta que strptime

Hay otra biblioteca llamada arrow realmente genial para realizar la manipulación en la fecha de Python.

 import arrow import datetime a = arrow.get('24052010', 'DMYYYY').date() print(isinstance(a, datetime.date)) # True 

tienes una cadena de fecha como esta, “24052010” y quieres el objeto de fecha para esto,

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

esta fecha de finalización le dará el objeto de fecha.

puede recuperar la cadena de fecha de su objeto de fecha usando esto,

 cus_date.strftime("%d%m%Y") 

Utilice el módulo de tiempo para convertir datos.

Fragmento de código:

 import time tring='20150103040500' var = int(time.mktime(time.strptime(tring, '%Y%m%d%H%M%S'))) print var