再basecontroller 类里可以这么写:
@InitBinder
public void initBinder(WebDataBinder binder){
binder.registerCustomEditor(Date.class, new DateEditor());
}
/**
* 时间格式的数据解析为Date类型
* @author MrG
*/
public class DateEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
Date date = null;
if("".equals(text)||"null".equals(text)) {
setValue(null);
return;
}
try {
if(text.length()==19 && text.indexOf("-")==4 && text.lastIndexOf("-")==7
&& text.indexOf(":")==13 && text.lastIndexOf(":")==16) {
date = DateFormatUtil.toDateTime(text);//yyyy-MM-dd HH:mm:ss
}else if(text.length()==10 && text.indexOf("-")==4 && text.lastIndexOf("-")==7) {
date = DateFormatUtil.toDate(text);//yyyy-MM-dd
}else {
date = new Date(Long.valueOf(text));//时间毫秒数
}
} catch (ParseException e) {
e.printStackTrace();
}
setValue(date);
}
}
上面代码属于哪种类型的格式判断,可以依自己项目实际情况来判断,
我这样的写法有点low了 ,先将就着用吧。