当前位置: 首页 > 知识库问答 >
问题:

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

邢和光
2023-03-14

我有UT,成功通过了

    @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.ZonedDateTime';嵌套异常org.springframework.core.convert.ConversionFailedExcture:无法从类型[java.lang.String]转换为类型[@org.springframework.web.bind.annotation.@org.springframework.format.annotation.DateTimeFormatjava.time.ZonedDateTime]for value'2009-07-10T14:30:01.001 03:00';嵌套异常java.lang.IllegalArgumentExc0019:对value[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

共有1个答案

臧增
2023-03-14

当你有加号这样的特殊字符时,你必须编码网址(

POST localhost:9080/MyApp/user?start=2009-07-10T14:30:01.001%2B03:00
 类似资料:
  • 我有一个查询字符串,可以是: 编辑:参数值的长度可以大于2 有人知道在String.ReplaceAll([regex],[replace])中使用什么好的regex表达式吗?

  • 我是JSP的新手,我正在尝试创建一个web界面,用户可以在该界面中输入他们想要删除的信息,并且该信息将在数据库表中删除。 在这里,他们应该输入和,然后应该删除具有两个指定ID的任何数据。但是,它不是从表中删除的。我有个例外 数组索引越界 下面是我的代码:

  • 我正在开发一个使用Spring Boot的项目。我有一个接受GET请求的控制器。 目前,我正在接受对以下类型URL的请求:

  • 我试图在Spring Boot中实现删除查询,但是参数是可选的。我如何为相同的数据编写JPA查询。以下是我如何为授权请求参数实施的: Controller.class 添加可选参数后,我的新Controller.class 在JPA我该怎么处理?

  • 问题内容: 我正在使用scrapy抓取一个似乎在每个URL末尾向查询字符串添加随机值的网站。这将爬网变成一种无限循环。 我如何抓紧忽略URL的查询字符串部分? 问题答案: 示例代码: 输出示例:

  • 我有过 我通过这种方式传递profileJson: 但是我的配置文件Json对象具有所有空字段。我应该怎么做才能让Spring解析我的json?