57 votes

Python: Conversion de `datetime.datetime` en `time.time`

En Python, comment puis-je convertir un datetime.datetime en le type de float que j'obtiendrais de la fonction time.time ?

47voto

Raymond Hettinger Points 231

Il n'est pas difficile d'utiliser la méthode du tuple de temps et de conserver quand même 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

29voto

Amber Points 159296
time.mktime(dt_obj.timetuple())

Devrait faire l'affaire.

14voto

lsowen Points 2759

Je sais que c'est une vieille question, mais en python 3.3+ il existe maintenant un moyen plus facile de le faire en utilisant la méthode datetime.timestamp():

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

10voto

Sven Marnach Points 133943

Étant donné un objet datetime.datetime appelé dt, vous pourriez 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

Remarque que la méthode timedelta.total_seconds() a été introduite en Python 2.7.

6voto

bgporter Points 11119

Une combinaison de datetime.timetuple() et time.mktime():

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X