Convert date to datetime in Python
You can use
datetime.combine(date, time); for the time, you create a
datetime.time object initialized to midnight.
from datetime import datefrom datetime import datetimedt = datetime.combine(date.today(), datetime.min.time())
There are several ways, although I do believe the one you mention (and dislike) is the most readable one.
2009, 12, 20, 0, 0) datetime.datetime(t.year, t.month, t.day)datetime.datetime(2009, 12, 20, 0, 0) datetime.datetime(*t.timetuple()[:-4])datetime.datetime(2009, 12, 20, 0, 0)t=datetime.date.today() datetime.datetime.fromordinal(t.toordinal())datetime.datetime(
and so forth -- but basically they all hinge on appropriately extracting info from the
date object and ploughing it back into the suitable ctor or classfunction for
The accepted answer is correct, but I would prefer to avoid using
datetime.min.time() because it's not obvious to me exactly what it does. If it's obvious to you, then more power to you. I also feel the same way about the
timetuple method and the reliance on the ordering.
In my opinion, the most readable, explicit way of doing this without relying on the reader to be very familiar with the
datetime module API is:
from datetime import date, datetimetoday = date.today()today_with_time = datetime( year=today.year, month=today.month, day=today.day,)
That's my take on "explicit is better than implicit."