方法1.根据前台传递的日期格式,在后台创建一个参数绑定的方法,将对应的日期字符串,转换为
java.util.date
从界面传递参数到spring后台controller类中,日期格式默认只能传long类型的时间戳
如果想要传递格式化的日期就必须进行特殊处理,原来我们就是了一种在controller类中重载initBinder方法
initBinder日期参数传值
@InitBinder
public void initBinder(WebDataBinder binder) throws Exception {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
CustomDateEditor dateEditor = new CustomDateEditor(df, true);
binder.registerCustomEditor(Date.class, dateEditor);
}
@RequestParam(value = "queryDate15", required = false) Date queryDate15,
@RequestParam(value = "queryDate25", required = false) Date queryDate25,
方法2.
下面我们来说明一下使用注解的方法格式化传递的日期方法:
在属性字段中添加DateTimeFormat注解
import org.springframework.format.annotation.DateTimeFormat;
@DateTimeFormat(pattern=“yyyy-MM-dd”)
private Date arrivePlanTime;
或者(以下代码经过测试可行)
/**
* http://127.0.0.1:8080/xxxx/user/dateTimeFormatTest?querydate=2018-12-12
* @return
*/
@RequestMapping("/dateTimeFormatTest")
@ResponseBody
public Map<String, Object> DateTimeFormatTest(
@DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam("querydate") Date querydate
) {
System.out.println(querydate);
Date date = new Date();
DateTimeFormatTest dateTimeFormatTest = new DateTimeFormatTest();
dateTimeFormatTest.setDateFormatISO(date);
dateTimeFormatTest.setDateFormatPattern(date);
dateTimeFormatTest.setDateNotForMat(date);
System.out.println(dateTimeFormatTest);
Map<String, Object> map = new HashMap<String, Object>(1);
map.put("map", dateTimeFormatTest);
return map;
}