Plus précisément, j'ai un code qui simplifie à ceci:
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)
Ce qui donne? Est-ce que Python ignore simplement le spécificateur de période lors de l'analyse des dates ou est-ce que je fais quelque chose de stupide?
Le Python time.strftime
docs dire:
Lorsqu'il est utilisé avec la fonction strptime (), le
%p
La directive n’affecte le champ horaire de sortie que si%I
La directive est utilisée pour analyser l'heure.
Effectivement, changer votre %H
à %I
le fait fonctionner.
format = '%Y-%m-%d %H:%M %p'
Le format utilise %H
au lieu de %I
. Puisque %H
est le format "24 heures", il est probable que le %p
information. Cela fonctionne très bien si vous changez le %H
à %I
.
Vous avez utilisé %H
(Format 24 heures) au lieu de %I
_ (Format 12 heures).
Essayez de remplacer% H (heure sur une horloge de 24 heures) par% I (heure sur une horloge de 12 heures)?