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.
Use datetime. strftime(format) to convert a datetime object into a string as per the corresponding format . The format codes are standard directives for mentioning in which format you want to represent datetime. For example, the %d-%m-%Y %H:%M:%S codes convert date to dd-mm-yyyy hh:mm:ss format.
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.
You can use datetime.combine(date, time, 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))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With