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
%psolo afecta el campo de hora de salida si la directiva%Ise 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