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

Мне нужно преобразовать даты в серийные номера Excel. для сценария обработки данных, который я пишу. Играя с датами в моей книге OpenOffice Calc, я смог сделать вывод, что «1-Jan 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_секундам()

16
задан jpp 28 January 2019 в 19:42
поделиться