问题描述:
项目中需要按照模板批量导入数据,在使用xlsx表格时,后台获取的时间数据为"44436.375",xlsx表格中为"2021/8/18 9:00"
原因分析:
经过度娘得知,“44436.375”为从"1900-01-01"开始计算,每天加1,即程序获取的时间为"1900-01-01"后“44436.375”天的时间
解决方案:
知道原因,后台使用程序处理
public static String ExcelDoubleToDate(String strDate){
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = DoubleToDate(Double.parseDouble(strDate));
Date date = new Date();
long localOffset = date.getTimezoneOffset() * 60*1000; //矫正时差,date.getTimezoneOffset()拿到的时分钟;
date.setTime((long) ((dVal - 25569) * 24 * 3600 * 1000 + localOffset)); //1900/1/1 到 1970/1/1 的 25569 天
return sdf.format(date);
}catch (Exception e){
e.printStackTrace();
return strDate;
}
return strDate;
}