使用commons-beanutils把javabean转换成Map日期date不能自定义格式
来源:互联网 发布:37传奇霸业炼体数据 编辑:程序博客网 时间:2024/05/20 17:27
今天遇到一个功能需要将javabean的属性转换到map<String,String>中,想到apache commons-beanutils的 BeanUtils工具类可能具有此功能。果然发现有个describe可以实现。试了下可以转换,但发现个问题,日期类型不能很好地转换,只能转换成Thu Sep 17 19:26:59 CST 2015这种格式,而我需要yyyy-MM-dd这种格式。翻了下源码发现有个日期转换器DateConverter,试了下注册到BeanUtilsBean中。
BeanUtilsBean beanUtilsBean = BeanUtilsBean.getInstance();
DateConverter converter = new DateConverter();
converter.setPattern("yyyy-MM-dd");
beanUtilsBean.getConvertUtils().register(new ConverterFacade(converter), java.util.Date.class);
但发现不起作用,继续阅读源码发现,它只用了StringConverter 一种转换器,代码如下。
public String convert(Object value) {
if (value == null) {
return null;
} else if (value.getClass().isArray()) {
if (Array.getLength(value) < 1) {
return (null);
}
value = Array.get(value, 0);
if (value == null) {
return null;
} else {
Converter converter = lookup(String.class);
return (converter.convert(String.class, value));
}
} else {
Converter converter = lookup(String.class);
return (converter.convert(String.class, value));
}
}
没办法只好重新覆盖这段代码,最终代码如下:
public class ExtConvertUtilsBean extends ConvertUtilsBean{
@Override
public String convert(Object value) {
if (value == null) {
return null;
} else if (value.getClass().isArray()) {
if (Array.getLength(value) < 1) {
return (null);
}
value = Array.get(value, 0);
if (value == null) {
return null;
} else {
Converter converter = lookup(String.class);
return (converter.convert(String.class, value));
}
} else {
Converter converter = null;
if(value instanceof java.util.Date ){
converter = lookup(java.util.Date.class);
}else{
converter = lookup(String.class);
}
return (converter.convert(String.class, value));
}
}
}
DateConverter converter = new DateConverter();
converter.setPattern(pattern);
beanUtilsBean.getConvertUtils().register(new ConverterFacade(converter), java.util.Date.class);
beanUtilsBean.describe(object);
至此可以实现日期自定义格式功能。
- 使用commons-beanutils把javabean转换成Map日期date不能自定义格式
- date日期格式转换
- date日期格式转换
- BeanUtils进行日期格式的拷贝转换
- SQL DATE 日期格式转换
- js转换Date日期格式
- js转换Date日期格式
- js转换Date日期格式
- js转换Date日期格式
- js转换Date日期格式
- js转换Date日期格式
- js转换Date日期格式
- java Date日期格式转换
- js转换Date日期格式
- 自定义BeanUtils处理时间格式转换
- 时间日期格式转换 sdutoj2246(Date类简单使用)
- BeanUtils注册DATE格式
- Spring data jpa 自定义查询返回,用FastJson把Map转换为JavaBean
- spring2.5 xml的简单入门示例(aop)
- HDU 5442 KMP + 最小表示法
- Java中Properties类的操作
- javaweb
- 关于servlet的生命周期
- 使用commons-beanutils把javabean转换成Map日期date不能自定义格式
- 【线性表项目2 - “顺序表”算法库终极完整版】
- javaweb2
- Winform 调用WCF客户端,所有服务端方法在运行的时候均找不到(编译没有问题)
- HDU 5438 Ponds
- javaweb3
- NetBeans IDE中实现页面跳转的 LoginFrame类
- C语言之空宏
- HTML5 重力感应 事件讲解