将localDateTime字符串正确解析为spring boot @pathVariable

问题描述 投票:1回答:2

我正在尝试获取具有时间戳的用户的所有数据:

@GetMapping("/datum/{userID}/{timeStamp}")
    List<Datum> getDataSingleUserTimeRange(@PathVariable Long userID, @PathVariable LocalDateTime timeStamp)
    {
          ....
    }

现在要测试这个Spring Boot rest api,在邮递员中,我打电话给GET和url-http://localhost:8080/datum/2/2019-12-15T19:37:15.330995

但是它给我错误提示:未能将类型'java.lang.String'的值转换为所需类型'java.time.LocalDateTime'

我该如何解决?

spring spring-boot spring-data-jpa spring-data
2个回答
1
投票
@GetMapping("/datum/{userID}/{timeStamp}") List<Datum> getDataSingleUserTimeRange(@PathVariable Long userID, @PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS") LocalDateTime timeStamp) { }

0
投票
@GetMapping("/datum/{userID}/{timeStamp}") List<Datum> getDataSingleUserTimeRange(@PathVariable Long userID, @PathVariable String timeStamp) { DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME; LocalDateTime dateTime = LocalDateTime.parse(timeStamp, formatter); ... return datumRepository.findUsingTime(start,end); }

作为字符串传递并进行了解析。并且也可以使用dateTime.truncatedTo(ChronoUnit.NECESARRY_UNIT);

© www.soinside.com 2019 - 2024. All rights reserved.