【日常记录】EasyExcel支持时间字符串同org.joda.time.DateTime转化

Author:赵志乾
Date:2024-06-11
Declaration:All Right Reserved!!!

问题:默认情况下,EasyExcel不支持时间字符串到org.joda.time.DateTime的转化。报错信息如下:

Exception in thread "main" com.alibaba.excel.exception.ExcelDataConvertException: Converter not found, convert STRING to org.joda.time.DateTime

解决方案:自定义Converter,代码如下:

// step1: 自定义Converter
public class DateTimeConverter implements Converter<DateTime> {

    private static final DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");

    @Override
    public Class<DateTime> supportJavaTypeKey() {
        return DateTime.class;
    }

    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        return CellDataTypeEnum.STRING;
    }

    @Override
    public DateTime convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
        return DateTime.parse(cellData.getStringValue(), dateFormatter);
    }


    @Override
    public WriteCellData<String> convertToExcelData(DateTime value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
        return new WriteCellData<>(value.toString(dateFormatter));
    }
}



// step2: 进行读写时注册自定义Converter
EasyExcel.read(readFile, clazz, new PageReadListener<T>(result::addAll, 100))
                .registerConverter(new DateTimeConverter())
                .sheet(sheetName)
                .doRead();
EasyExcel.write(writeFile , clazz)
                .registerConverter(new DateTimeConverter())
                .sheet(sheetName)
                .doWrite(result);

相关推荐

  1. python时间戳与时间字符串转化

    2024-06-12 09:30:02       35 阅读
  2. Oracle字符串-日期转换

    2024-06-12 09:30:02       47 阅读
  3. 日常记录】Jackson如何支持org.joda.time.DateTime

    2024-06-12 09:30:02       22 阅读
  4. EasyExcel无法转换LocalDateTime日期类型的问题

    2024-06-12 09:30:02       46 阅读
  5. flask请求时间记录日志处理

    2024-06-12 09:30:02       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 09:30:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 09:30:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 09:30:02       82 阅读
  4. Python语言-面向对象

    2024-06-12 09:30:02       91 阅读

热门阅读

  1. Solidity智能合约事件(event)

    2024-06-12 09:30:02       32 阅读
  2. 镜像没有包含 shell 导致无法进入容器

    2024-06-12 09:30:02       26 阅读
  3. openssl工具国际/国密签名命令行流程

    2024-06-12 09:30:02       28 阅读
  4. 互联网摸鱼日报(2024-06-11)

    2024-06-12 09:30:02       31 阅读
  5. 安装TensorFlow2.12.0

    2024-06-12 09:30:02       32 阅读
  6. Linux信号基础

    2024-06-12 09:30:02       26 阅读
  7. 介绍 TensorFlow 的基本概念和使用场景。

    2024-06-12 09:30:02       34 阅读
  8. 单例设计模式

    2024-06-12 09:30:02       30 阅读
  9. 计算机网络知识点(一)

    2024-06-12 09:30:02       27 阅读
  10. linux查找生产问题常用命令——参数解释

    2024-06-12 09:30:02       24 阅读
  11. 详细说说机器学习在自然语言处理的应用

    2024-06-12 09:30:02       34 阅读