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

时间:2015-07-11 16:14:53

标签: python excel datetime xlrd

我正在从excel读取数据并使用python操作数据。但是日期将以整数形式出现。如何将日期转换回日期格式?

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

2 个答案:

答案 0 :(得分:9)

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)

答案 1 :(得分:2)

在xlrd中它是alaways nums,但您可以使用xldate_as_tuple将其转换为python日期。 http://www.lexicon.net/sjmachin/xlrd.html#xlrd.xldate%5Fas%5Ftuple-function