我的 Controller 有一个 GET
端点,它接受大量查询参数。因此,我没有创建多个 @QueryParam
,而是创建了一个 CriteriaDTO
来对 Mongo 数据库执行动态查询
我的 Controller 端点:
@GetMapping
public List<MyObject> getAll(@Valid CriteriaDTO criteriaDTO){
return myObjectService.findAll(criteriaDTO);
}
public class CriteriaDTO {
private int offset = 0
private int limit = 20
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate minDate
// getters, setters ...
}
而且,我想传递 minDate 是具有以下格式 yyyy-MM-dd
的 URL,但我需要将其转换为以下格式 yyyy-MM-dd'T 'HH:mm:ss.SSS
.
我的问题是:是否有任何注释或其他内容可以接受第一种格式 yyyy-MM-dd 并自动将其转换为另一种格式?
需要明确的是,如果我调用以下电话:
http://localhost:8080/api/myobject?minDate=2020-01-01
然后 criteriaDTO.getminDate()
将返回 2020-01-01'T'00:00:00.000
感谢您的帮助:)
最佳答案
您可以通过比搜索注释魔术解决方案更简单的方式来完成此操作。
只需向 CriteriaDTO 添加一个用于 LocalDateTime 的附加 getter:
public LocalDateTime getMinDateTime() {
return this.minDate.atTime(0, 0, 0, 0);
}
并在需要时间而不是日期的任何地方使用它。
关于java - Spring Boot将请求参数字段的日期格式更改为DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60060427/