我需要将日期转换为我正在编写的数据处理脚本的 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”在 Python 中给出 3478032000,而 excel 将序列号呈现为 39892。
上面的公式有什么问题?
*注意:我使用的是 Python 2.6.3,因此无法访问 datetime.total_seconds()