sae*_*gnu 17
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
Run Code Online (Sandbox Code Playgroud)
如JF Sebastian所述,这个答案仅适用于1900/03/01之后的任何日期
编辑:(回答@RK)
如果您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)
Run Code Online (Sandbox Code Playgroud)
该模块xlrd提供了xldate_as_tuple将Excel的数字日期格式转换为元组的功能(year, month, day, hour, minute, nearest_second)。
然后,您可以datetime.datetime用于将元组转换为datetime-object。
from datetime import datetime
import xlrd
excel_date = 44032
python_date = datetime(*xlrd.xldate_as_tuple(excel_date, 0))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28069 次 |
| 最近记录: |