python strptime formato incorrecto con hora de 12 horas
Frecuentes
Visto 1,603 veces
3
Mi formato de cadena actualmente es datetime.strptime(date_as_string, '%d/%m/%y %I:%M %p')
esto lamentablemente no funciona con entradas como 1/12/07 00:07 AM
¿Cómo puedo hacer que strptime reconozca este formato?
EDIT:
ValueError: los datos de tiempo '1/12/07 00:07 AM' no coinciden con el formato '%d/%m/%y %I:%M %p'
2 Respuestas
4
'00' no es una hora válida de 12 horas, pero si su cadena de fecha de entrada tiene un formato inconsistente, es posible que pueda salirse con la suya con algo como esto:
>>> from datetime import datetime as dt
>>> date_as_string = '1/12/07 00:07 AM'
>>> format_12 = '%d/%m/%y %I:%M %p'
>>> format_24 = '%d/%m/%y %H:%M %p'
>>> date_string, time_string = date_as_string.split(' ', 1)
>>> try:
... dt.strptime(date_string + ' ' + time_string, format_12)
... except ValueError:
... dt.strptime(date_string + ' ' + time_string, format_24)
...
datetime.datetime(2007, 12, 1, 0, 7)
contestado el 22 de mayo de 12 a las 18:05
Tienes razón, este está funcionando. Mi error está en otra parte, edito mi pregunta: Ponytech
@zepatou He editado mi respuesta para que coincida con su pregunta actualizada. - kojiro
¡Eso está funcionando, gracias! ¿Debería editar el título de mi pregunta para reflejar mejor cuál era mi problema? - Ponytech
@zepatou Si cree que puede mejorar la capacidad de encontrar su pregunta, entonces por todos los medios. :) - kojiro
1
'1/12/07 00:07 AM'
tiene un formato incorrecto porque en el formato de 12 horas la hora puede estar en el rango 1-12 y no 0.
contestado el 22 de mayo de 12 a las 18:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas python strptime or haz tu propia pregunta.
%Debería reconocer el 0. ¿Puede publicar más detalles, como un mensaje de error? - Jon Martin
Eso es porque '00' no es un válido 12 horas a dia. hora. - kojiro