java实现导入时可能会出现读取的日期变成了例如41731的数字,根据参考https://blog.csdn.net/boyan1344/article/details/108625028的文章解决了问题,自己做个笔记。
在读取数据时,我直接将数据格式设置为String ----->cell.setCellType(Cell.CELL_TYPE_STRING);
在业务层处理:
Calendar calendar = Calendar.getInstance();
System.out.println(item.getCARD_HAVE_UNIT_DATE());
SimpleDateFormat sf =new SimpleDateFormat("yyyy/MM/dd");//时间格式话
Date parse = sf.parse("1900/01/01");
int i = Integer.parseInt(item.getCARD_HAVE_UNIT_DATE());
calendar.setTime(parse);
calendar.add(Calendar.DATE,i-2); //i-2的原因是实际天数比获取的天数少2天
String format = sf.format(calendar.getTime());
System.out.println(format);
输出结果
41731 //直接读取的数据
2014/04/02 //格式化后的数据
Wed Apr 02 00:00:00 CST 2014 //获取的数据 未格式化
再次附上原文章链接: