JXL读取Excel日期时间不准确

时间:2023-03-10 04:16:04
JXL读取Excel日期时间不准确

XL读取Excel日期时间多出了8个小时。

Cell c = rs.getCell(j, i);
                    if (c.getType() == CellType.DATE) {//手动填写模板文件时为 date 类型,其他情况有可能不是date类型
                        DateCell dc = (DateCell) c;
                        Date date = dc.getDate();
                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                        String sDate = sdf.format(date);
                        nextLine[j] = sDate;
                    }
                    else {
                        String d = rs.getCell(j, i).getContents().trim();
                        nextLine[j] = d;
                    }

解决办法:获取的日期时间需要调整时区。参见:http://www.andykhan.com/jexcelapi/tutorial.html#dates

Cell c = rs.getCell(j, i);
                    if (c.getType() == CellType.DATE) {//手动填写模板文件时为 date 类型,其他情况有可能不是date类型
                        DateCell dc = (DateCell) c;
                        Date date = dc.getDate();
                        TimeZone zone = TimeZone.getTimeZone("GMT");
                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                        sdf.setTimeZone(zone);
                        String sDate = sdf.format(date);
                        nextLine[j] = sDate;
                    }
                    else {
                        String d = rs.getCell(j, i).getContents().trim();
                        nextLine[j] = d;
                    }