将数据格式的excel转换为日期格式python

参见英文答案 > How to convert a given ordinal number (from Excel) to a date                                    2个
我正在从excel读取数据并使用python操作数据.但是日期将以整数形式出现.如何将日期转换回日期格式?

2015年5月15日即将发布,电话为42139.00

最佳答案
from datetime import datetime
excel_date = 42139
dt = datetime.fromordinal(datetime(1900, 1, 1).toordinal() + excel_date - 2)
tt = dt.timetuple()
print dt
print tt

如J.F.Sebastian所述,这个答案仅适用于1900/03/01之后的任何日期

编辑:(回答@ R.K)

如果您的excel_date是浮点数,请使用以下代码:

def floatHourToTime(fh):
    h, r = divmod(fh, 1)
    m, r = divmod(r*60, 1)
    return (
        int(h),
        int(m),
        int(r*60),
    )

excel_date = 42139.23213
dt = datetime.fromordinal(datetime(1900, 1, 1).toordinal() + int(excel_date) - 2)
hour, minute, second = floatHourToTime(excel_date % 1)
dt = dt.replace(hour=hour, minute=minute, second=second)

转载注明原文:将数据格式的excel转换为日期格式python - 代码日志