En Python, comment convertir un datetime.datetime
dans le type de float
que j'obtiendrais du time.time
une fonction?
Il n'est pas difficile d'utiliser la méthode du Tuple temporel tout en conservant les microsecondes:
>>> t = datetime.datetime.now()
>>> t
datetime.datetime(2011, 11, 5, 11, 26, 15, 37496)
>>> time.mktime(t.timetuple()) + t.microsecond / 1E6
1320517575.037496
time.mktime(dt_obj.timetuple())
Devrait faire l'affaire.
Étant donné un objet datetime.datetime
dt
, vous pouvez utiliser
(dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
Exemple:
>>> dt = datetime.datetime.now(); t = time.time()
>>> t
1320516581.727343
>>> (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
1320516581.727296
Notez que la méthode timedelta.total_seconds()
a été introduite dans Python 2.7.
Je sais que c'est une vieille question, mais dans python 3.3+ il y a maintenant un moyen plus facile de le faire en utilisant la méthode datetime.timestamp () :
from datetime import datetime
timestamp = datetime.now().timestamp()
Une combinaison de datetime.timetuple()
et time.mktime()
:
>>> import datetime
>>> import time
>>> now = datetime.datetime.now()
>>> secondsSinceEpoch = time.mktime(now.timetuple())