Quiero 'analizar las fechas en este formato, pero ignoro partes de la cadena. 'Mié, 27 de octubre de 1770 22:17:00 GMT' Según lo que he reunido, la fecha y hora no admite zonas horarias muy bien. Lo cual está bien, realmente solo quiero ignorar la zona horaria de la cadena, sin tener que manipular cadenas. ¿Hay algo que pueda reemplazar% Z por debajo para decir "cualquier cadena aquí" y analizar las fechas como tales? Además, no entiendo por qué analizará las zonas horarias como PST, GMT pero no EST. No parece adjuntar tzinfo en cualquier caso de todos modos, no estoy seguro de qué tipo de cadena realmente busca la porción% Z.Formato de fecha de análisis de Python, ignore las partes de la cadena
>>> import datetime
>>> y = datetime.datetime.strptime('Wed, 27 Oct 1770 22:17:00 GMT', '%a, %d %b %Y %H:%M:%S %Z')
>>> y = datetime.datetime.strptime('Wed, 27 Oct 1770 22:17:00 PST', '%a, %d %b %Y %H:%M:%S %Z')
>>> y = datetime.datetime.strptime('Wed, 27 Oct 1770 22:17:00 EST', '%a, %d %b %Y %H:%M:%S %Z')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/brazil-pkg-cache/packages/Python/Python-2.5.1.17.1/RHEL5_64/DEV.STD.PTHREAD/build/lib/python2.5/_strptime.py", line 331, in strptime
(data_string, format))
ValueError: time data did not match format: data=Wed, 27 Oct 1770 22:17:00 EST fmt=%a, %d %b %Y %H:%M:%S %Z
Nota: dateutil no es una opción para mí, quiero apoyar numerosos formatos y no puedo permitir que dateutil para interpretar accidentalmente fechas equivocadas. (es decir, dateutil parece adivinar cuándo ve fechas como 01/02/2010, 1 de febrero o 2 de enero). Básicamente quiero intentar aceptar formatos que especifico en un orden hasta que obtengo una coincidencia.
Las respuestas de código puro no son útiles en sí mismas, ya que tienden a promover la programación _copy-and-paste._ Siempre que sea posible, se debe dar una explicación del código y _por qué_ funciona. :) – Miguel
Aunque estoy de acuerdo con @Miguel, +1 por una respuesta única que aborda la cuestión. –
No es esto más simple: '' .join ('Mié, 17 de octubre de 2011 22:22:22 + 0300'.split() [1: 6]) También lo anterior no funcionará b/c de la configuración de la zona horaria. Obtienes ValueError: quedan datos no convertidos – radtek