今天在做一個查詢時, 涉及到日期範圍的查詢, 比如:
findByCondition?page=0&size=10&startDate=&endDate=2020-07-09
當startDate前端傳過來是空時,日期匹配總是出差,對象類這時用的是Date, 當然用了json格式化也沒用作用。 當有前端有傳值時還是沒有問題。
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startDate;
找了各種方式,沒成功,最後還是新增了個 dto ,把字段弄成String接收。這時接收纔沒有異常(不管前端有沒有傳值)。
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private String startDate;
@GetMapping("findByCondition")
public ResponseEntity findByCondition(@ModelAttribute PaymentDto paymentEntity, @RequestParam int page, @RequestParam int size) {
Page result = paymentFacade.findByCondition(paymentEntity, page, size);
return ResponseEntity.ok(Result.success(result));
}