Especificamente, tenho um código que simplifica isso:
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)
O que da? O Python simplesmente ignora o especificador de período ao analisar datas ou estou fazendo algo estúpido?
%I
começa em 1) !!O formato está usando em
%H
vez de%I
. Como%H
é o formato "24 horas", é provável que apenas descarte as%p
informações. Funciona muito bem se você mudar%H
para%I
.fonte
Você usou
%H
(formato de 24 horas) em vez de%I
(formato de 12 horas).fonte
Tente substituir% H (hora em um relógio de 24 horas) por% I (hora em um relógio de 12 horas)?
fonte