java实现Excel表格的导入日期变成数字的问题

    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  //获取的数据  未格式化


再次附上原文章链接:

https://blog.csdn.net/boyan1344/article/details/108625028

你可能感兴趣的:(java实现Excel表格的导入日期变成数字的问题)