我有一个控制器,我正在尝试使用mockMVC进行测试
@RequestMapping(value = "/something/{language}", method = RequestMethod.GET, produces = { "application/json", "application/xml" })
public ResponseEntity<someEntity> getInfo(
@PathVariable String language,
@DateTimeFormat(iso= DateTimeFormat.ISO.DATE_TIME) @RequestParam(required = false) Date fromDate
)
我希望能够解析像文档中的日期格式:
DATE_TIME 最常见的ISO日期时间格式是yyyy-MM-dd'T'HH:mm:ss.SSSZ,例如:
但是我一直得到这样的结果:
处理程序执行导致异常:无法将类型为“java.lang.String”的值转换为所需的类型“java.util.Date”;嵌套异常是
org.springframework.core.convert.ConversionFailedException:
Failed to conv ert from type java.lang.String to type
@org.springframework.format.annotation.DateTimeFormat
@org.springframework.web.bind.annotation.RequestParam java.util.Date for value '2015-09-26T01:30:00.000Z'; nested exception is
java.lang.IllegalArgumentException: Unable to parse '2015-09-26T01:30:00.000Z'
据我所见,我没有做错任何事情,这当然是必须的。 有人能解释一下我的问题吗?我认为我不需要发布更多的代码,因为异常确实显示了我传递给API的正确值,对吧?
Z
上,因为它代表日期时间解析模式中的时区。 - Sanjeev2015-09-26T01:30:00.000<实际时区值>
而不是2015-09-26T01:30:00.000Z
。例如,2015-09-26T01:30:00.000-04:00
。 - Sanjeev