J'essaie d'obtenir la date d'hier à 23h30.
Voici mon code:
import datetime
yesterday = datetime.date.today () - datetime.timedelta (days=1)
PERIOD=yesterday.strftime ('%Y-%m-%d')
new_period=PERIOD.replace(hour=23, minute=30)
print new_period
cependant, je reçois cette erreur:
TypeError: replace() takes no keyword arguments
toute aide serait appréciée.
Commencez par changer datetime.date.today()
en datetime.datetime.today()
pour pouvoir manipuler l’heure du jour.
Appelez ensuite replace
avant de transformer l'heure en chaîne.
Donc au lieu de:
PERIOD=yesterday.strftime ('%Y-%m-%d')
new_period=PERIOD.replace(hour=23, minute=30)
Faire ceci:
new_period=yesterday.replace(hour=23, minute=30).strftime('%Y-%m-%d')
print new_period
N'oubliez pas non plus que la chaîne vers laquelle vous la convertissez n'affiche aucune information sur l'heure ou la minute. Si cela vous intéresse, ajoutez %H
pour heure et %M
pour les informations de minute à votre chaîne de format.
Vous pouvez utiliser datetime.combine (date, heure, tzinfo = self.tzinfo).
import datetime
yesterday = datetime.date.today () - datetime.timedelta (days=1)
t = datetime.time(hour=23, minute=30)
print(datetime.datetime.combine(yesterday, t))
C'est ce que tu veux?
from datetime import datetime
yesterday = datetime(2014, 5, 12, 23, 30)
print yesterday
Edité
from datetime import datetime
import calendar
diff = 60 * 60 * 24
yesterday = datetime(*datetime.fromtimestamp(calendar.timegm(datetime.today().utctimetuple()) - diff).utctimetuple()[:3], hour=23, minute=30)
print yesterday