为了账号安全,请及时绑定邮箱和手机立即绑定

无法解析,在索引 23 处找到未解析的文本

无法解析,在索引 23 处找到未解析的文本

慕桂英546537 2022-07-27 20:58:53
我想将 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个赞

这是因为根据你的DateTimeFormatterstart_date 是无效的。不期望Z在日期结束时拥有。

您有 2 个选项。

  1. 从您的&中删除Z字符。start_dateend_date

  2. 修改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);


查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 222 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号