python - biblioteca - Conversión de cadena con desplazamiento UTC a un objeto datetime
timedelta python example (1)
Esta pregunta ya tiene una respuesta aquí:
Dada esta cadena: "Fri, 09 Apr 2010 14:10:50 +0000"
¿cómo se puede convertir a un objeto datetime
?
Después de leer, siento que esto debería funcionar, pero no ...
>>> from datetime import datetime
>>>
>>> str = ''Fri, 09 Apr 2010 14:10:50 +0000''
>>> fmt = ''%a, %d %b %Y %H:%M:%S %z''
>>> datetime.strptime(str, fmt)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/_strptime.py", line 317, in _strptime
(bad_directive, format))
ValueError: ''z'' is a bad directive in format ''%a, %d %b %Y %H:%M:%S %z''
Cabe señalar que esto funciona sin problemas:
>>> from datetime import datetime
>>>
>>> str = ''Fri, 09 Apr 2010 14:10:50''
>>> fmt = ''%a, %d %b %Y %H:%M:%S''
>>> datetime.strptime(str, fmt)
datetime.datetime(2010, 4, 9, 14, 10, 50)
Pero estoy atascado con "Fri, 09 Apr 2010 14:10:50 +0000"
. Preferiría convertir exactamente eso sin cambiarlo (ni cortarlo) de ninguna manera.
Parece que strptime no siempre admite %z
. Python parece llamar simplemente a la función C, y strptime no admite %z
en su plataforma.
Nota: desde Python 3.2 en adelante, siempre funcionará.