经常会使用到Excel表格的上传和下载,在上传的时候,如果不对Excel表格的时间的那一列进行格式设置,那么上传的时候传到后台时间格式会变成数字格式,情况如下
现提供两种解决方式
1.就是对上传模板的时间列设置一下格式
选中时间列设置单元格格式
设置单元格格式为文本格式
2.第二种方法是通过java代码时间变成的数字在转换成时间,具体代码如下
public static String getExcelDate(String dataValue){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
BigDecimal bd = new BigDecimal(dataValue);
int days = bd.intValue();
int mills = (int) Math.round(bd.subtract(new BigDecimal(days)).doubleValue() * 24 * 3600);
Calendar c = Calendar.getInstance();
c.set(1900, 0, 1);
c.add(Calendar.DATE, days - 2);
int hour = mills / 3600;
int minute = (mills - hour * 3600) / 60;
int second = mills - hour * 3600 - minute * 60;
c.set(Calendar.HOUR_OF_DAY, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, second);
//转化之后要获取的值
Date d = c.getTime();//Date类型
String format1 = dateFormat.format(d);//datetime类型
System.out.println(format1);
return format1;
}