python - create - ¿Cómo puedo registrar el período(AM/PM) con datetime.strptime?
timedelta python example (4)
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 simplemente ignora el especificador de período al analizar las fechas o estoy haciendo algo estúpido?
Intente reemplazar% H (Hora en un reloj de 24 horas) con% I (Hora en un reloj de 12 horas)?
Los documentos time.strftime
Python dicen:
Cuando se utiliza con la función strptime (), la directiva
%p
solo afecta el campo de hora de salida si la directiva%I
se usa para analizar la hora.
Efectivamente, cambiar su %H
a %I
hace funcionar.
Usaste %H
(formato de 24 horas) en lugar de %I
(formato de 12 horas).
format = ''%Y-%m-%d %H:%M %p''
El formato usa %H
lugar de %I
Como %H
es el formato de "24 horas", es probable que descarte la información de %p
. Funciona bien si cambia el %H
a %I