單種日期格式轉換 (yyyy-MM-dd)java
使用@InitBinder註解實現日期格式轉換web
package cn.happy.controller; import java.beans.PropertyEditor; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class FirstController { /** * @param binder */ @InitBinder public void initBinder(WebDataBinder binder){ //PropertyEditor //類 implements PropertyEditor binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); } @RequestMapping("/first.do") //類型轉化工做必定是在真正的handler方法執行前執行的。 public String doFirst(Date birthday,int age) throws Exception{ System.out.println(birthday+"==============="); System.out.println(age+"==============="); return "/WELCOME.jsp"; } }
多種日期格式轉換正則表達式
使用正則表達式spring
package cn.happy.controller; import java.sql.Date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.regex.Pattern; import org.springframework.beans.TypeMismatchException; import org.springframework.beans.propertyeditors.PropertiesEditor; public class MyDateEditor extends PropertiesEditor{ @Override public void setAsText(String source) throws IllegalArgumentException { SimpleDateFormat sdf=getDate(source); //作一個操做 try { setValue(sdf.parseObject(source)); } catch (ParseException e) { e.printStackTrace(); } } private SimpleDateFormat getDate(String source) { SimpleDateFormat sdf=null; if (Pattern.matches("^\\d{4}-\\d{2}-\\d{2}$", source)) { sdf=new SimpleDateFormat("yyyy-MM-dd"); }else if (Pattern.matches("^\\d{4}/\\d{2}/\\d{2}$", source)) { sdf=new SimpleDateFormat("yyyy/MM/dd"); }else if (Pattern.matches("^\\d{4}\\d{2}\\d{2}$", source)) { sdf=new SimpleDateFormat("yyyyMMdd"); }else { throw new TypeMismatchException("", Date.class); } return sdf; } }
handler部分代碼:sql
package cn.happy.controller; import java.beans.PropertyEditor; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.beans.propertyeditors.PropertiesEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class FirstController { /** * * @param binder */ @InitBinder public void initBinder(WebDataBinder binder){ binder.registerCustomEditor(Date.class,new MyDateEditor()); } @RequestMapping("/first.do") //類型轉化工做必定是在真正的handler方法執行前執行的。 public String doFirst(Date birthday,int age) throws Exception{ System.out.println(birthday+"==============="); System.out.println(age+"==============="); return "/WELCOME.jsp"; } }
這樣就能夠進行多種日期類型轉換了!!!!app