java datelocaleconverter 日期转换_DateConverter does not support default String to 'Date' conversion.的处理...

DateConverter does not support default String to 'Date' conversion.的处理

在使用beanutils工具类封装javabean时,beanUtils不提供直接将字符串转换成Date(java.util.Date)数据类型的方法,

所以会出现下面警告:

52b7823928ee5a4e4a3739c39c03964b.png

或者类似下面异常:

org.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion.

解决办法:

1.自己写个转换器的代码块

try {

ConvertUtils.register(new Converter() {//注册一个日期转换器

public Object convert(Class type, Object value) {

Date date1 =null;

if(value instanceof String){

String date = (String) value;

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

try {

date1 = sdf.parse(date);

} catch (ParseException e) {

e.printStackTrace();

}

}

return date1;

}

}, Date.class);

2.哈哈!beanutil这个工具类源码里有提供DateLocaleConverter这个类做注册的转化器

ConvertUtils.register(new DateLocaleConverter(), Date.class);

现实工具类方法为:

[java]  view plain

copy

publicstaticvoidtransMap2Bean(Mapmap, Object obj) {

//ConvertUtils.register(new DateLocaleConverter(), Date.class);

ConvertUtils.register(newConverter()

{

@SuppressWarnings("rawtypes")

@Override

publicObject convert(Class arg0, Object arg1)

{

System.out.println("注册字符串转换为date类型转换器");

if(arg1 ==null)

{

returnnull;

}

if(!(arg1instanceofString))

{

thrownewConversionException("只支持字符串转换 !");

}

String str = (String)arg1;

if(str.trim().equals(""))

{

returnnull;

}

SimpleDateFormat sd = newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try{

returnsd.parse(str);

}

catch(ParseException e)

{

thrownewRuntimeException(e);

}

}

}, java.util.Date.class);

if(map ==null|| obj ==null) {

return;

}

try{

BeanUtils.populate(obj, map);

} catch(Exception e) {

System.out.println("Map转化Bean异常:"+ e);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值