You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DateConverter默认字符串转Date失败,读取.xlsx文件遇技术问题求助

解决DateConverter不支持字符串转日期的问题

这个报错的核心原因是:默认的DateConverter没有配置匹配你Excel日期列(11/28/2017)的格式规则,无法完成字符串到Date类型的转换。你只需要手动注册一个指定了日期格式的转换器就能搞定,具体修改如下:

步骤1:创建并配置日期转换器

首先引入DateConverter类,然后创建实例并设置你的Excel日期格式(这里是MM/dd/yyyy):

import org.apache.commons.beanutils.converters.DateConverter;

// 初始化日期转换器,指定支持的日期格式
DateConverter dateConverter = new DateConverter();
// 如果有多种日期格式,可以在数组里添加多个,比如{"MM/dd/yyyy", "yyyy-MM-dd"}
dateConverter.setPatterns(new String[]{"MM/dd/yyyy"});

步骤2:注册转换器到BeanUtils

替换你原来的默认转换器注册代码,把上面的自定义转换器注册进去:

Resource configFile = new FileSystemResource("resource" + File.separator + "excel" + File.separator + "template" + File.separator + "cancellation.xml");

// 注册自定义日期转换器
BeanUtilsBean.getInstance().getConvertUtils().register(dateConverter, Date.class);

final XLSReader xlsReader = ReaderBuilder.buildFromConfig(configFile);
// 后续的Excel读取逻辑...

为什么这样能解决问题?

原来的代码里BeanUtilsBean.getInstance().getConvertUtils().register(false, false, 0);只是关闭了默认转换器的一些严格校验,但并没有指定日期格式规则。通过手动注册带格式的转换器,BeanUtils就能明确知道如何把11/28/2017这样的字符串转换成Date对象了。

内容的提问来源于stack exchange,提问作者Muddassir Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:11:06