Как преобразовать Python datetime.datetime в номер серийной даты Excel

Мне нужно преобразовать даты в серийные номера Excel для сценария сбора данных, который я пишу. Играя с датами в моей рабочей тетради OpenOffice Calc, я смог сделать вывод, что «1 января 1899 00:00:00» соответствует нулю.

Я написал следующую функцию для преобразования объекта даты и времени Python в серийный номер 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

Однако, когда я пробую некоторые примеры дат, числа отличаются от тех, которые я получаю, когда я форматирую дату как число в Excel (хорошо, OpenOffice Calc). Например, тестирование «2009-03-20» дает 3478032000 на Python, а в Excel - серийный номер 39892.

Что не так с формулой выше?

* Примечание: я использую Python 2.6.3, поэтому у меня нет доступа к datetime.total_seconds ()

Ответы на вопрос(4)

Ваш ответ на вопрос