我想將 2 個日期發送到 Spring 休息點。我試過這個:start_date=2019-03-03T21:25:24.000Z&end_date=2019-03-03T21:25:29.000Z休息終點: @GetMapping("/terminals") public ResponseEntity<Map<Integer, List<TopTerminalsDTO>>> getTopTerminals( @RequestParam(value = "start_date", required = true) String start_date, @RequestParam(value = "end_date", required = true) String end_date) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"); LocalDateTime start_dateTime = LocalDateTime.parse(start_date, formatter); LocalDateTime end_dateTime = LocalDateTime.parse(end_date, formatter); final List<PaymentTransactionsDailyFacts> list = dashboardService.findTop_Terminals(start_dateTime, end_dateTime);但我得到例外:2019-03-10 13:22:46,677 INFO [stdout] (default task-1) 13:22:46.676 [default task-1] ERROR o.s.b.w.s.support.ErrorPageFilter - Forwarding to error page from request [/dashboard/terminals] due to exception [Text '2019-03-03T21:22:39.000Z' could not be parsed, unparsed text found at index 23]2019-03-10 13:22:46,678 INFO [stdout] (default task-1) java.time.format.DateTimeParseException: Text '2019-03-03T21:22:39.000Z' could not be parsed, unparsed text found at index 232019-03-10 13:22:46,678 INFO [stdout] (default task-1) at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2049)2019-03-10 13:22:46,678 INFO [stdout] (default task-1) at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1948)2019-03-10 13:22:46,679 INFO [stdout] (default task-1) at java.base/java.time.LocalDateTime.parse(LocalDateTime.java:492)2019-03-10 13:22:46,679 INFO [stdout] (default task-1) at deployment.datalis_admin.war//org.datalis.admin.backend.restapi.DashboardController.getTopTerminals(DashboardController.java:87)2019-03-10 13:22:46,679 INFO [stdout] (default task-1) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)你知道我該如何解決這個問題嗎?
1 回答

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
這是因為根據你的DateTimeFormatter
start_date 是無效的。不期望Z
在日期結束時擁有。
您有 2 個選項。
從您的&中刪除
Z
字符。start_date
end_date
修改
DateTimeFormatter
為也接受 ZoneOffset。
例子:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");
您還可以決定是否start_date
不需要您的幾分之一秒。如果沒有,你可以使用這個技巧:
LocalDateTime start_dateTime = LocalDateTime.parse("2019-03-03T21:25:24Z", DateTimeFormatter.ISO_INSTANT);
添加回答
舉報
0/150
提交
取消