@RestController @RequestMapping("/api/datetime/") final class DateTimeController { @RequestMapping(value = "date", method = RequestMethod.POST) public void processDate(@RequestParam("date") LocalDate date) { } @RequestMapping(value = "datetime", method = RequestMethod.POST) public void processDateTime(@RequestParam("datetime") LocalDateTime dateAndTime) { //Do stuff } }
比如我发送/api/datetime/date这样的日期格式(2015-09-26),则会出错,
抛出ConversionFailedException
而如果使用java 8,spring mvc4支持@DateTimeFormat的注解,则很容易
解决问题
@RequestMapping(value = "date", method = RequestMethod.POST) public void processDate(@RequestParam("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date) { }
如果是时间类型,则
@RequestMapping(value = "date", method = RequestMethod.POST) public void processDate(@RequestParam("date") @DateTimeFormat(pattern = "dd.MM.yyyy") LocalDate date) { }
或者
@RequestMapping(value = "datetime", method = RequestMethod.POST) public void processDateTime(@RequestParam("datetime") @DateTimeFormat(pattern = "dd.MM.yyyy HH:mm:ss.SSSZ") LocalDateTime dateAndTime) { }