• EasyExcel 时间格式转换 取时间格式为数字解决办法


    使用EasyExcel 读取时间格式的单元格,变成了数字

    单元格的数据这个日期

     读取的数据却是一个数值:

     如,我们想要转换的参数:

        @ExcelProperty(value = "到期日", index = 3, converter = LocalDateConverter.class)
        @ApiModelProperty("到期日")
        @JsonFormat(
                shape = JsonFormat.Shape.STRING,
                pattern = "yyyy-MM-dd"
        )
        private LocalDate dueDt;

    读取到的值是数字,如下图

    easyExcel在解析时 该字段类型为Number. 值是从1900年1月1日到这一天的日期,所以添加解析器 

    @Override
        public LocalDate convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
                                           GlobalConfiguration globalConfiguration) {
            if (cellData.getType().equals(CellDataTypeEnum.NUMBER)) {
                LocalDate localDate = LocalDate.of(1900, 1, 1);
    //excel 有些奇怪的bug, 导致日期数差2 localDate
    = localDate.plusDays(cellData.getNumberValue().longValue() - 2); return localDate; } else if (cellData.getType().equals(CellDataTypeEnum.STRING)) { return LocalDate.parse(cellData.getStringValue(), DateTimeFormatter.ofPattern("yyyy-MM-dd")); } else { return null; } }
  • 相关阅读:
    hdu 5112 A Curious Matt (水题)
    hdu 5464 Clarke and problem(dp)
    (2)线程优先级、线程安全
    (1)进程与线程
    并发与并行
    (5) 守护线程与线程阻塞
    java线程中断2
    sleep()和wait()的区别
    java线程中断
    java创建线程的三种方式及其对比
  • 原文地址:https://www.cnblogs.com/roychenyi/p/16055567.html
Copyright © 2020-2023  润新知