Мне нужно преобразовать даты в серийные номера Excel для сбора данных script Я пишу. Играя с датами в моей книге OpenOffice Calc, я смог вывести, что "1-янв. 1899 00:00:00" отображает нулевое число.
Я написал следующую функцию для преобразования из объекта datetime 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()