若依框架导入时间格式兼容LocalDate和LocalDateTime的方法

前言

若依框架默认都是使用Date来处理日期和时间,相比之下LocalDate 和 LocalDateTime 具有线程安全、操作方便等优点,在 Java 8 及以后的版本中,建议优先使用它们来处理日期和时间

代码

对象处理

    // Excel导入导出时使用
    @Excel(name = "日期", dateFormat = "yyyy-MM-dd")
    // LocalDate和LocalDateTime序列化和反序列化时使用
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate localDate;

导入时处理

在Common模块中找到ExcelUtil类的importExcel方法,注意有好几个重载的方法,是要有具体功能实现的那个方法
方法位置
找到如下代码

else if (Date.class == fieldType) {
                        if (val instanceof String) {
                            val = DateUtils.parseDate(val);
                        } else if (val instanceof Double) {
                            val = DateUtil.getJavaDate((Double) val);
                        }
                    }

在这一串代码之后添加下面的代码即可

                    else if (LocalDate.class == fieldType) {
                        String dateFormat = field.getAnnotation(Excel.class).dateFormat();
                        if (StringUtils.isNotEmpty(dateFormat)) {
                            val = LocalDate.parse(parseDateToStr(dateFormat, val));
                        } else {
                            val = Convert.toStr(val);
                        }
                    } else if (LocalDateTime.class == fieldType) {
                        String dateFormat = field.getAnnotation(Excel.class).dateFormat();
                        if (StringUtils.isNotEmpty(dateFormat)) {
                            val = LocalDate.parse(parseDateToStr(dateFormat, val));
                        } else {
                            val = Convert.toStr(val);
                        }
                    }

如有需要生成代码时也支持LocalDate和LocalDateTime的方法请在评论区留言,先下班了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值