8 votes

strptime par défaut à 1900

from datetime import datetime

datetime.strptime('%b%d  %I:%M%p', 'AUG21  3:26PM')

results with 
1900-08-21 15:26:00

comment puis-je écrire de manière pythonique de sorte que lorsqu'il n'y a pas d'année, l'année en cours soit prise par défaut (2013) ?

J'ai vérifié et la fonction strftime n'a pas d'option pour changer le défaut peut-être qu'une autre bibliothèque de temps peut le faire ?

thx

7voto

Mario Rossi Points 4527

Analyser la date comme vous le faites déjà, puis

date= date.replace(2013)

C'est l'une des solutions les plus simples avec les modules que vous utilisez.

En y réfléchissant mieux, vous serez probablement confronté à un problème le 29 février prochain.

input= 'Aug21  3:26PM'
output= datetime.datetime.strptime('2013 '+ input ,'%Y %b%d  %I:%M%p')

0voto

Avi Gaur Points 29

Vous pouvez connaître la date d'aujourd'hui pour remplacer l'année pour le remplacement dynamique.

datetime.strptime('%b%d  %I:%M%p', 'AUG21  3:26PM').replace(year=datetime.today().year)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X