[Python] Comment soustraire un jour d'une date?


Answers

Soustrayez datetime.timedelta(days=1)

Question

J'ai un objet Python datetime.datetime . Quelle est la meilleure façon de soustraire un jour?




Aussi juste une autre belle fonction que j'aime utiliser quand je veux calculer c'est-à-dire le premier / dernier jour du dernier mois ou d'autres timedeltas relatifs etc ...

La fonction relativedelta de la fonction dateutil (une extension puissante à la librairie datetime)

import datetime as dt
from dateutil.relativedelta import relativedelta
#get first and last day of this and last month)
today = dt.date.today()
first_day_this_month = dt.date(day=1, month=today.month, year=today.year)
last_day_last_month = first_day_this_month - relativedelta(days=1)
print (first_day_this_month, last_day_last_month)

>2015-03-01 2015-02-28



Juste pour élaborer une autre méthode et un cas d'utilisation pour lequel cela est utile:

  • Soustrayez 1 jour du datetime actuel:
from datetime import datetime, timedelta
print datetime.now() + timedelta(days=-1)  # Here, I am adding a negative timedelta
  • Utile dans le cas , Si vous voulez ajouter 5 jours et soustraire 5 heures de datetime actuel. c'est-à-dire Quel est le Datetime 5 jours à partir de maintenant mais 5 heures de moins?
from datetime import datetime, timedelta
print datetime.now() + timedelta(days=5, hours=-5)

Il peut également être utilisé avec d'autres paramètres, par exemple des secondes, des semaines, etc.