Comment incrémenter le jour d'une date / heure?
for i in range(1, 35)
date = datetime.datetime(2003, 8, i)
print(date)
Mais j'ai besoin de passer correctement des mois et des années? Des idées?
date = datetime.datetime(2003,8,1,12,4,5)
for i in range(5):
date += datetime.timedelta(days=1)
print(date)
L'incrémentation des dates peut être réalisée à l'aide d'objets timedelta:
Recherchez les objets timedelta dans la documentation Python: http://docs.python.org/library/datetime.html
la source
Voici une autre méthode pour ajouter des jours à la date en utilisant relativedelta de dateutil.
Production:
la source
timedelta()
stdlib?Toutes les réponses actuelles sont fausses dans certains cas car elles ne considèrent pas que les fuseaux horaires changent de décalage par rapport à UTC. Ainsi, dans certains cas, l'ajout de 24h est différent de l'ajout d'un jour calendaire.
Solution proposée
La solution suivante fonctionne pour Samoa et maintient l'heure locale constante.
Code testé
Résultats de test
la source
tzinfo == None
datetimes UTC ou naïfs ( ).C'était une solution simple pour moi:
la source
Vous pouvez également importer timedelta pour que le code soit plus propre.
Puis convertissez en date en chaîne
Python one liner est
la source
Une solution courte sans bibliothèques du tout. :)
Assurez-vous que " string d " est en fait sous la forme de
%m/%d/%Y
afin que vous n'ayez pas de problèmes de transition d'un mois à l'autre.la source
d
sur8/31/18
alors cela revient8/32/18
. Si vous changez l'année à partir de18
, ça casse simplement.