Python set datetime hour to be a specific time

datetime, python

Solution

First, change `datetime.date.today()` to `datetime.datetime.today()` so that you can manipulate the time of the day.

Then call `replace` before turning the time into a string.

So instead of:

PERIOD=yesterday.strftime ('%Y-%m-%d') 
new_period=PERIOD.replace(hour=23, minute=30)

Do this:

new_period=yesterday.replace(hour=23, minute=30).strftime('%Y-%m-%d')
print new_period

Also keep in mind that the string you're converting it to displays no information about the hour or minute. If you're interested in that, add `%H` for hour and `%M` for the minute information to your format string.

Problem

I am trying to get the date to be yesterday at 11.30 PM. Here is my 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 ``` however i am getting this error: ``` TypeError: replace() takes no keyword arguments ``` any help would be appreciated.

Original source