高端做网站公司,软件定制开发价格,深圳龙华建设公司,网站制作要花多少钱问题描述#xff1a;Excel导入数据时#xff0c;当数据是日期可能会存在问题#xff0c;日期格式转为文本了#xff0c;例如“2023-07-31”接收时变为“45138”#xff0c;导致后端解析日期出错#xff0c;无法导入。
解决方法#xff1a;
方法一#xff1a;将Excel日…问题描述Excel导入数据时当数据是日期可能会存在问题日期格式转为文本了例如“2023-07-31”接收时变为“45138”导致后端解析日期出错无法导入。
解决方法
方法一将Excel日期的那一整列设置单元格格式为文本后端解析字符串格式日期
方法二不改变Excel格式通过转换文本方式得到实际日期经实际计算是45136会有2天的误差这个45136就是1900/01/01到2023/07/31的天数。
代码如下
if (orderExcel.getFaultTime().length() 5) { //故障日期//方法一LocalDate initDate LocalDate.parse(1900-01-01);LocalDate localDate initDate.plusDays((long) (Double.parseDouble(orderExcel.getFaultTime()) - 2));log.info(转换后的故障日期为 localDate);repairOrder.setFaultTime(localDate);//方法二由于1900/1/1 到 1970/1/1 之间有 25569 天所以需要减去25569天来计算时间戳long l (long) ((Double.parseDouble(orderExcel.getFaultTime()) - 25569) * 24 * 3600 * 1000);log.info(Epoch point of time is 1970-01-01T00:00:00Z(秒) l);LocalDateTime localDateTime LocalDateTime.ofInstant(Instant.ofEpochMilli(l), ZoneId.systemDefault()); //等效于localDateTime new Timestamp(l).toLocalDateTime();log.info(转换后的故障时间为 localDateTime);} else {repairOrder.setFaultTime(LocalDate.parse(orderExcel.getFaultTime(), DateTimeFormatter.ofPattern(yyyy-MM-dd)));
}