Cómo convertir un python datetime.datetime para sobresalir el número de fecha de serie

Necesito convertir fechas en números de serie de Excel para un script de mezcla de datos que estoy escribiendo. Al jugar con las fechas en mi libro de trabajo OpenOffice Calc, pude deducir que el '1 de enero de 1899 00:00:00' se asigna al número cero.

Escribí la siguiente función para convertir un objeto de fecha y hora de Python en un número de serie de Excel:

def excel_date(date1):
    temp=dt.datetime.strptime('18990101', '%Y%m%d')
    delta=date1-temp
    total_seconds = delta.days * 86400 + delta.seconds
    return total_seconds

Sin embargo, cuando pruebo algunas fechas de muestra, los números son diferentes de los que obtengo cuando formateo la fecha como un número en Excel (bueno, OpenOffice Calc). Por ejemplo, probar '2009-03-20' proporciona 3478032000 en Python, mientras que Excel representa el número de serie como 39892.

Qué tiene de malo la fórmula anterior?

* Nota: Estoy usando Python 2.6.3, así que no tengo acceso a datetime.total_seconds ()

Respuestas a la pregunta(8)

Su respuesta a la pregunta