Python: Converting from `datetime.datetime` to `time.time`

In Python, how do I convert a datetime.datetime into the kind of float that I would get from the time.time function?


Solution 1:

It's not hard to use the time tuple method and still retain the microseconds:

>>> t = datetime.datetime.now()
>>> t
datetime.datetime(2011, 11, 5, 11, 26, 15, 37496)

>>> time.mktime(t.timetuple()) + t.microsecond / 1E6
1320517575.037496

Solution 2:

time.mktime(dt_obj.timetuple())

Should do the trick.

Solution 3:

I know this is an old question, but in python 3.3+ there is now an easier way to do this using the datetime.timestamp() method:

from datetime import datetime
timestamp = datetime.now().timestamp()