2019独角兽企业重金招聘Python工程师标准>>>
在使用SpringMVC的项目中经常遇到 controller 参数中接收Date类型的数据,但是页面传过来的参数又是日期字符串,会出现转换异常。
由于项目需要支持两种日期格式所以从写了一个日期转换器。网友可以根据自己需要实现内部的内容。
package com.its.mmo;import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.lang.StringUtils;/*** 日期格式话工具* SPRINGMVC日期字符换转换Date* @author ALLEN*/
public class DateEditor extends PropertyEditorSupport {@Overridepublic void setAsText(String text) throws IllegalArgumentException {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = null;try {if(StringUtils.isNotBlank(text)){date = format.parse(text);}} catch (ParseException e) {format = new SimpleDateFormat("yyyy-MM-dd");try {date = format.parse(text);} catch (ParseException e1) {e1.printStackTrace();}}setValue(date);}
}
然后在controller 中添加@InitBinder
/*** 初始化日期格式* * @param request* @param binder* @throws Exception*/@InitBinderprotected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {binder.registerCustomEditor(Date.class, new DateEditor());}