Obteniendo datetime desde float en Python

¿Cómo se obtiene una datetime y datetime de un float en Python?

Por ejemplo, tengo un flotador como 43111.0 y quiero obtener la datetime y datetime para esto.

Parece un formato de fecha y hora de Excel, llamado fecha de serie . Manera rápida y sucia de convertirlo:

 >>> import datetime >>> serial = 43111.0 >>> seconds = (serial - 25569) * 86400.0 >>> datetime.datetime.utcfromtimestamp(seconds) datetime.datetime(2018, 1, 11, 0, 0) 
 import datetime, time print datetime.datetime.fromtimestamp(time.time()) print datetime.datetime.fromtimestamp(43111.0) 

Entonces, con un poco de matemáticas:

Si 43111 es el 11 de enero de 2018, entonces 0 es el 30 de diciembre de 1899. Python tiene datetime.date.fromordinal()

Devuelva la fecha correspondiente al prolinal gregoriano ordinal, donde el 1 de enero del año 1 tiene el ordinal 1. ValueError se genera a menos que 1 <= ordinal <= date.max.toordinal (). Para cualquier fecha d, date.fromordinal (d.toordinal ()) == d.

Si lo usas con un offset, tienes:

 >>> dateoffset = 693594 >>> datetime.date.fromordinal(dateoffset + 43111) datetime.date(2018, 1, 11) 

Espero que ayude, incluso si no funciona para flotadores.

Prueba esto:

 from datetime import datetime datetime.fromtimestamp(*your_timestamp_here*).strftime('%Y-%m-%d')