Verificamos de forma exhaustivamente cada post de nuestro sitio web con el objetivo de enseñarte siempre información más veraz y certera.
Solución:
Parece que el formato de “fecha de serie” de Excel es en realidad el número de días desde 1900-01-00, con un componente fraccional que es una fracción de un día, basado en http://www.cpearson.com/excel/datetime.htm. (Supongo que esa fecha en realidad debería considerarse 1899-12-31, ya que no existe el día 0 de un mes)
Entonces, parece que debería ser:
def excel_date(date1):
temp = dt.datetime(1899, 12, 30) # Note, not 31st Dec but 30th!
delta = date1 - temp
return float(delta.days) + (float(delta.seconds) / 86400)
Si bien esto no es exactamente relevante para el formato de fecha de serie de Excel, este fue el principal éxito para exportar la fecha y hora de Python a Excel. Lo que he encontrado particularmente útil y simple es simplemente exportar usando strftime.
import datetime
current_datetime = datetime.datetime.now()
current_datetime.strftime('%x %X')
Esto generará el siguiente formato ’25/06/14 09:59:29′, que Excel acepta como una fecha/hora válida y permite ordenar en Excel.
si el problema es que queremos el número de serie de Excel DATEVALUE() para las fechas, se puede usar la función toordinal(). Los números de serie de Python comienzan el 1 de enero del año 1, mientras que Excel comienza el 1 de enero de 1900, así que aplique una compensación. Consulte también el error de año bisiesto de Excel 1900 (https://support.microsoft.com/en-us/help/214326/excel-incorrectly-assumes-that-the-year-1900-is-a-leap-year)
def convert_date_to_excel_ordinal(day, month, year) :
offset = 693594
current = date(year,month,day)
n = current.toordinal()
return (n - offset)
valoraciones y comentarios
Nos puedes favorecer nuestro cometido poniendo un comentario y dejando una puntuación te damos las gracias.