spring - 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
并且解析正确。
有任何想法吗?
解决方案
推荐阅读
- reactjs - 使用 prevState 更新状态,但当来自父级的道具发生变化时
- angular - Angular 8如何在三个组件之间传递数据
- c# - Xamarin.Android - RSACryptoServiceProvider CspParameters 为 null 并且 CryptoKeySecurity 为 null 使用 X509Certificate2
- javascript - Angular 7:使用 Rxjs observbles 时的 ExpressionChangedAfterItHasBeenCheckedError
- php - 我在 SteamAuth.php 第 206 行收到“ErrorException:未定义偏移量:1”
- ffmpeg - 在 ffplay 中获得绿屏:使用 Live555 通过 RTP 流将桌面(DirectX 表面)流式传输为 H264 视频
- javascript - 带有 AdminSdk 和 RealtimeDatabase 的 Firebase 功能不起作用
- java - 为什么 try-catch-finally 不重新提示用户?
- jquery-plugins - 如何使用 jQuery jScroll 滚动表格行?
- parsing - 获取 LSF 作业的开始时间