今天遇到了一个特别普遍但是相对于来说之前没见过的问题,那就是在使用导入Excel 时日期的问题,今天在这里讲一下解决方案,文章末尾也特别感谢一篇其他的参考文章 首先上问题 我在Excel里面存放的日期是:2019/08/21 然后在后台读取的时候为43188 (大概是这样的的,例子,别纠结),然后实体类里面的日期是Date类型,也就是说将获取的日期转换成时间类型,即数据库存入的时候就是2019-08-21:00:00:00 我在测试保存 数据的时候发现了日期的存入方式:Sun Jul 21 00:00:00 CST 2019 类似这样的,然后数据库里面显示的就是2019-08-21:00:00:00 类似这样的 问题来了 :就是把 43188 --》Sun Jul 21 00:00:00 CST 2019 这样类似的转换 到底怎么转换 看一下代码
Cell cell_6=row.getCell(6);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//ExcelUtil.getValue(cell_6))这里获取的值就是上所述的43188
if(!StringUtils.isEmpty(ExcelUtil.getValue(cell_6))){
int days1= Integer.parseInt(ExcelUtil.getValue(cell_6));
//这里通过工具类转换成 Sun Jul 21 00:00:00 CST 2019 这样的
Date date1 =StdController.getDate(days1);
std.setA205(sdf.parse(sdf.format(date1)));//实施日期
}else{
std.setA205(null);
}
//工具类如下
public static Date getDate(int days) {
Calendar c = Calendar.getInstance();
c.set(1900, 0, 1);
c.add(Calendar.DATE, days - 2);
return c.getTime();
}
这个问题总算得到解决,感谢某篇博客,附上链接地址:
https://blog.csdn.net/qq_33327680/article/details/82796023
|