Python:从`datetime.datetime`转换为`time.time`

时间:2011-11-05 18:03:04

标签: python time calendar

在Python中,如何将datetime.datetime转换为float来自time.time函数的那种?{/ p>

5 个答案:

答案 0 :(得分:43)

使用time tuple方法并不难,仍然保留微秒:

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

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

答案 1 :(得分:24)

time.mktime(dt_obj.timetuple())

应该做的伎俩。

答案 2 :(得分:11)

给定datetime.datetime对象dt,您可以使用

(dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()

示例:

>>> dt = datetime.datetime.now(); t = time.time()
>>> t
1320516581.727343
>>> (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
1320516581.727296

请注意,{2.7}中引入了timedelta.total_seconds()方法。

答案 3 :(得分:6)

datetime.timetuple()time.mktime()的组合:

>>> import datetime
>>> import time
>>> now = datetime.datetime.now()
>>> secondsSinceEpoch = time.mktime(now.timetuple())

答案 4 :(得分:4)

我知道这是一个老问题,但在python 3.3+中,现在有一种更简单的方法可以使用datetime.timestamp()方法:

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