Java Spring rest控制器从查询参数中的zonedatetime中删除加号

Java Spring rest控制器从查询参数中的zonedatetime中删除加号,java,spring-boot,controller,zoneddatetime,Java,Spring Boot,Controller,Zoneddatetime,我已经成功地通过了 @Test public void test() { String text1 = "2009-07-10T14:30:01.001Z"; String text2 = "2009-07-10T14:30:01.001+03:00"; DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ");

我已经成功地通过了

    @Test
    public void test() {
        String text1 = "2009-07-10T14:30:01.001Z";
        String text2 = "2009-07-10T14:30:01.001+03:00";
        DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ");

        ZonedDateTime zonedDateTime1 = ZonedDateTime.parse(text1, f);
        ZonedDateTime zonedDateTime2 = ZonedDateTime.parse(text2, f);

        System.out.println(zonedDateTime1);
        System.out.println(zonedDateTime2);
    }
输出是

2009-07-10T14:30:01.001Z
2009-07-10T14:30:01.001+03:00
但是,当我尝试在spring控制器上使用此模式时

    @GetMapping
    public ResponseEntity get( @RequestParam("start") @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ")
                                               ZonedDateTime start) {
        Dto result = service.get(start);
        return new ResponseEntity(result, getHeaders(), HttpStatus.OK);
    }
例如,只有当我通过Z而不是时区时,它才起作用

2009-07-10T14:30:01.001Z
但当尝试通过时区偏移时,会出现错误消息

无法将“java.lang.String”类型的值转换为所需类型 “java.time.ZoneDateTime”;嵌套异常为 org.springframework.core.convert.ConversionFailedException:未能 从类型[java.lang.String]转换为类型 [@org.springframework.web.bind.annotation.RequestParam @org.springframework.format.annotation.DateTimeFormat 值“2009-07-10T14:30:01.001 03:00”的java.time.ZonedDateTime]; 嵌套异常为java.lang.IllegalArgumentException:解析尝试 值[2009-07-10T14:30:01.001 03:00]失败“

我试着这样通过邮递员的请求

POST localhost:9080/MyApp/user?start=2009-07-10T14:30:01.001+03:00
header: Content-Type application/json
当您有(
+
)这样的特殊字符时,必须对


检查您的输入,在错误消息中,它清楚地表明
+
缺失
2009-07-10T14:30:01.001 03:00
POST localhost:9080/MyApp/user?start=2009-07-10T14:30:01.001%2B03:00