背景:最近写一个通过excel批量导入数据的功能,里面含有时间,但是java读取之后把时间转为了距离1990年1月1号的天数,比如excel中时间为2018/9/16 18:30,java读取之后变成43359.77083就会有问题 出现的问题: SimpleDateFormat startFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = startFormat.parse(tmpMap.get(&quo
可以先判断单元格的类型,有的日期是字符串存储的,有的是按日期存储的(单元格按数字解析),代码如下: Cell cell = row.getCell(); Date date = null; if (cell.getCellType() == CellType.STRING){ //按字符串转换日期 } else if (cell.getCellType() == CellType.NUMERIC) { date = cell.getDateCellValue(); }
java中对于JSON格式数据的操作,主要是json格式字符串与JavaBean之间的相互转换.java中能够解析JSON格式数据的框架有很多,比如json-lib,jackson,阿里巴巴的fastjson,谷歌的gson,本文只要对使用时间最长的json-lib和目前应用最为广泛的jackson这两种框架的使用进行说明. 首先准备两个用于json格式字符串向JavaBean之间的相互转换的类. public class User { private int age; private Stri
最近在做导入的时候发现,excel中设置数值格式是不能有日期的那些符号出现的,/ - : 之类的,否则就会变成数字到了java后台,设置成日期,比如 yyyy-mm-dd 到了后台也是数字,即距离1900年到现在的天数,这个时候校验肯定是很不方便的,所以只能转一下: //创建1900年的日历对象 Calendar c = new GregorianCalendar(1900,0,-1); Date d = c.getTime(); //获取时间戳 ,然后加上天数,因为excel中默认会传来今天到