Lessons Learned

Daily drops of knowledge from the Vinta team

contact us
Back to Lessons Learned

You don't need a hacky snippet to manipulate dates into the a specific moment, such as EOD. datetime.datetime.combine can do that for you as it receives three parameters: date (can be datetime too), time and tzinfo , the latter being an optional argument. The following snippet will put a given date into EOD:

from datetime import datetime, time

date = datetime.strptime("2019-01-01", "%Y-%m-%d")  # datetime.datetime(2029, 1, 1, 0, 0)
eod_date = datetime.combine(date, time.max)  # datetime.datetime(2029, 1, 1, 23, 59, 59, 999999)

About Carlos Coelho

Pythonista and open source enthusiast. I enjoy web and game development.