Específicamente tengo un código que simplifica esto:
from datetime import datetime
date_string = '2009-11-29 03:17 PM'
format = '%Y-%m-%d %H:%M %p'
my_date = datetime.strptime(date_string, format)
# This prints '2009-11-29 03:17 AM'
print my_date.strftime(format)
¿Lo que da? ¿Python ignora el especificador de período al analizar fechas o estoy haciendo algo estúpido?

%Icomienza en 1) !!El formato está usando en
%Hlugar de%I. Dado que%Hes el formato de "24 horas", es probable que solo se descarte la%pinformación. Funciona bien si cambia el%Ha%I.fuente
Usó
%H(formato de 24 horas) en lugar de%I(formato de 12 horas).fuente
¿Intenta reemplazar% H (hora en un reloj de 24 horas) con% I (hora en un reloj de 12 horas)?
fuente