EasyExcel自定义Converter解决LocalDateTime系列时间日期转换的问题

本文介绍了如何在Java项目中使用LocalDateTime替代Date,并在EasyExcel中自定义Converter进行数据类型转换。作者提供了一个BaseDateConverter抽象类,包含LocalDate、LocalTime和LocalDateTime的转换器子类,支持读取和写入Excel时的时间日期格式化。

一、前言

        LocalDateTime系列是jdk8针对日期、时间处理提供的全新的操作类,相较于Date类有很大的提升,具体参考末尾的链接。

        所以,在项目对时间、日期的处理也逐渐用LocalDateTime取代。EasyExcel中自带了DateStringConverter用于Date的数据类型转换,但LocalDateTime系列没有,故写此自定义数据格式转换器。 

二、自定义Converter

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

/**
 * @Author gmd
 * @Description EasyExcel自定义LocalDateTime系列时间日期转换器
 * 用法:
 *      1、@ExcelProperty(value = {"添加时间"}, converter = BaseDateConverter.LocalDateTimeConverter.class)
 *      2、ExcelWriter writer = EasyExcel.write(response.getOutputStream()).registerConverter(new BaseDateConverter.LocalDateConverter()).build();
 * @Date 2022-08-31 19:23:08
 */
public class BaseDateConverter {

    /**
     * 核心抽象类,负责不同类的数据类型装换
     * @param <T> LocalXXX类泛型
     */
    private static abstract class CoreConverter<T> implements Converter<T> {

        private Class<T> clazz;

        /**
         * 指定Class类型,接收Lo
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值