如何解析Kotlin中RestController的LocalDateTime

我试图用kotlin为我的应用程序实现一个控制器。 但是,当我提出get请求时解析日期时间格式时出现错误。

@RestController @RequestMapping("/api/records") class RecordController(val recordService: RecordService) { @GetMapping("details") fun getRecordDetail( @RequestParam recordId: Int, @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) dateTime: LocalDateTime): RecordDto { return recordService.getRecordDetails(recordId, dateTime) } } 

错误是

 Failed to convert value of type 'java.lang.String' to required type 'java.time.LocalDateTime'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime] for value '2017-08-21T00:00:000.00'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2017-08-21T00:00:000.00]" 

其余的API工作正常,没有dateTime参数。

这是因为您提供的格式与定义的ISO -date不兼容。

在这里,你的价值(也许只是从你身边的“错字”)和工作价值

 2017-08-21T00:00:000.00 (yours) 2017-08-21T00:00:00.000 (working) 

确保您提供有效的秒和毫秒值。