1.问题
和女朋友51数学建模期间,当我用python直接读取日期和时间的时候,发现读出来的全部都是数字
2.解决方法
我的excel格式
读取每一行数据,把年月日,小时分取出
import xlrd
from datetime import datetime
from xlrd import xldate_as_datetime, xldate_as_tuple
class excel_read:
def __init__(self, excel_path='E:/QQ/FileRecv/2021-51MCM-Problems/2021-51MCM-Problem B/11.xlsx', encoding='utf-8', index=0):
self.data = xlrd.open_workbook(excel_path) ##获取文本对象
self.table = self.data.sheets()[index] ###根据index获取某个sheet
self.rows = self.table.nrows ##3获取当前sheet页面的总行数,把每一行数据作为list放到 list
def get_data(self):
for i in range(self.rows):
col = self.table.row_values(i) ##获取每一行数据
real_date_1_y = str(xldate_as_datetime(col[1], 0).strftime('%y')) #读取每一行的第二列的日期中年份给real_date_1_y
real_date_1_md = str(xldate_as_datetime(col[1], 0).strftime('%m/%d'))#读月/日
real_date_2_H = int(xldate_as_datetime(col[2], 0).strftime('%H'))#读小时
real_date_2_M = int(xldate_as_datetime(col[2], 0).strftime('%M'))#读分
##下面的是我用上面得到的数据来进行判断,不用看
if real_date_1_md=='11/01':
state1 = 1
if real_date_2_H>=0 and real_date_2_H<8 :
n_08=n_08+1
if real_date_2_H>=8 and real_date_2_H<16 :
n_816=n_816+1
if real_date_2_H>=16 and real_date_2_H<24 :
n_1624=n_1624+1