Is there a built-in method for converting a
date to a
datetime in Python, for example getting the
datetime for the midnight of the given date? The opposite conversion is easy:
datetime has a
Do I really have to manually call
datetime(d.year, d.month, d.day)?
You can use datetime.combine(date, time); for the time, you create a
datetime.time object initialized to midnight.
from datetime import date from datetime import datetime dt = 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.
>>> t=datetime.date.today() >>> datetime.datetime.fromordinal(t.toordinal()) datetime.datetime(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)
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