首页 > 解决方案 > Spring-boot:日期查询参数字符串格式

问题描述

我正在使用 spring-boot 2.0.4.RELEASE。

我收到此错误消息:

org.springframework.validation.BeanPropertyBindingResult:1 个错误字段“来自”的对象“quoteWarningSearchForm”中的字段错误:拒绝值 [2000-10-31T01:30:00.000-05:00];代码 [typeMismatch.quoteWarningSearchForm.from,typeMismatch.from,typeMismatch.java.util.Date,typeMismatch]; 参数 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码 [quoteWarningSearchForm.from,from]; 论据 []; 默认消息[来自]];默认消息 [无法将类型“java.lang.String”的属性值转换为属性“from”所需的类型“java.util.Date”;嵌套异常是 org.springframework.core.convert.ConversionFailedException:无法从类型 [java.lang.String] 转换为类型 [java.util.Date] 的值 '2000-10-31T01:30:00.000-05:00 '; 嵌套异常是 java.lang。

我的要求是这样的:

GET /portal/warnings?from=2000-10-31T01:30:00.000-05:00

如您所见,from查询参数是一个Date. 我的端点看起来像:

public SearchResponse<MetricGroup> metrics(MetricsSearchForm form);

MetricsSearchForm看起来像:

public class MetricsSearchForm {
    private Date from;
    private Date to;
}

我还尝试添加:

public class MetricsSearchForm {

    private String app;

    @DateTimeFormat(iso = ISO.DATE_TIME)
    private Date from;

    @DateTimeFormat(iso = ISO.DATE_TIME)
    private Date to;
}

但它还没有工作。

这似乎是一些愚蠢的问题,我并没有完全得到 hpw 来解决。

重要提示:我不得不说我已经尝试过10/10/2020并且解析正确。

有任何想法吗?

标签: springspring-boot

解决方案


推荐阅读