En Python, ¿cómo convierto un datetime.datetime
en el tipo de float
que obtendría de la función time.time
?Python: Convertir de `datetime.datetime` a` time.time`
Respuesta
No es difícil de usar el método de tiempo tupla y seguir manteniendo los microsegundos:
>>> t = datetime.datetime.now()
>>> t
datetime.datetime(2011, 11, 5, 11, 26, 15, 37496)
>>> time.mktime(t.timetuple()) + t.microsecond/1E6
1320517575.037496
¿Puede explicar por qué esta solución es mejor que '(dt - datetime.datetime.utcfromtimestamp (0)). Total_seconds()'? La adición manual de microsegundos me parece poco elegante. –
@RamRachum: su fórmula asume que 'dt' es la hora UTC. 'mktime()' asume que la entrada es hora local. Debe evitar usar objetos naive datetime que representen la hora local, a menos que desee mostrarlos inmediatamente. Use en su lugar los objetos de fecha y hora UTC de la zona horaria u hora UTC. – jfs
dado un objeto dt
datetime.datetime
, podría utilizar
(dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
Ejemplo:
>>> dt = datetime.datetime.now(); t = time.time()
>>> t
1320516581.727343
>>> (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
1320516581.727296
Nota que el método timedelta.total_seconds()
se introdujo en Python 2.7.
'((24 * 3600 * td.days + td .seconds) * 1000000 + td.microseconds)/1e6' en Python <2.7 – jfs
Una combinación de datetime.timetuple()
y time.mktime()
:
>>> import datetime
>>> import time
>>> now = datetime.datetime.now()
>>> secondsSinceEpoch = time.mktime(now.timetuple())
Esto quita el subtítulo segunda parte del tiempo. –
+1 porque esta respuesta es útil de todos modos y no se justifica el downvote. –
+1 de mí también. Estoy de acuerdo con Sven en ambos aspectos :-) –
time.mktime(dt_obj.timetuple())
debe hacer el truco.
Esto cae la segunda parte del tiempo. –
+1 porque esta respuesta es útil de todos modos y no se justifica el downvote. –
Sé que esto es una cuestión de edad, pero en Python 3.3+ ahora hay una manera más fácil de hacer esto utilizando la datetime.timestamp() método:
from datetime import datetime
timestamp = datetime.now().timestamp()
'timestamp = time.time()' – jfs
Eso manejaría este caso específico (encuentra la marca de tiempo actual), pero usar '' datetime.timestamp() '' es más poderoso porque te permite encontrar la marca de tiempo en un datetime arbitrario. – lsowen
Proporcione un mejor ejemplo entonces. Porque '.now(). Timestamp()' es estrictamente peor que 'time.time()'. El primero puede producir un resultado incorrecto durante las transiciones DST. Un mejor ejemplo: '.now (utc) .timestamp()' (al menos, produce el resultado correcto). – jfs
- 1. Convertir sello de tiempo desde la época de datetime.datetime
- 2. no se puede comparar datetime.datetime a datetime.date
- 3. ¿Cómo puedo extender datetime.datetime de Python con mis propios métodos?
- 4. ¿Cómo convierto un objeto datetime.date en datetime.datetime en python?
- 5. Convertir Python a R
- 6. Comparando si datetime.datetime existe o None
- 7. python cómo convertir fechas de fecha y hora a años decimales
- 8. Cómo convertir a un objeto de fecha y hora de Python con JSON.loads?
- 9. Convertir la fecha de Python a Javascript
- 10. ¿Convertir cadena a objeto de clase Python?
- 11. Python: ¿Convertir de Tuple a String?
- 12. Convertir enum a int de Python
- 13. Convertir archivos de encabezado C++ a Python
- 14. Python: convertir cadena a matriz de bytes
- 15. Convertir el objeto datetime a una Cadena de fecha solo en Python
- 16. cómo convertir el código de Python 3 a Python 2?
- 17. ¿Cómo especificar la zona horaria (UTC) al convertir a tiempo Unix? (Python)
- 18. Convertir la marca de tiempo Unix a formato humano en Django con Python
- 19. python: cómo convertir moneda a decimal?
- 20. Convertir lista a tupla en Python
- 21. convertir exponencial a decimal en Python
- 22. Convertir bytes a bits en python
- 23. Cómo convertir `ctime` a` datetime` en Python?
- 24. Convertir decimal a binario en python
- 25. Cómo convertir XSD a Python Clase
- 26. Convertir cadena/caracteres a entero en python
- 27. Convertir Python datetime a rfc 2822
- 28. Python - convertir el archivo csv a JSON
- 29. Cómo convertir DD a DMS en Python
- 30. Convertir archivo a HEX String Python
relacionada: [en la conversión de datetime.date a marca de tiempo UTC en Python] (http://stackoverflow.com/a/8778548/4279) – jfs