@RequestParam
RequestParam을 포맷하는데 사용할 ISO 패턴 enum 타입으로 정의되어 있다고 한다.
pattern
iso 형식으로 표시되지 않는 날짜 시간 패턴을 받고자 할 때 사용한다.
데이터 타입 사용자 정의 패턴으로 패턴은 엄격하게 지켜줘야 한다
pattern example
- yyyy-MM-dd (ex. 2020-06-23)
- yyyy-MM-dd HH:mm:ss : (ex. 2020-06-23 18:03:32)
- yyyy-MM-dd HH:mm:ssZ : (ex. 2020-06-23-18:03:32+09:00)
방법
받고자 하는 Date 타입 앞에 @DateTimeFormat(pattern = "yyyy-MM-dd") Date 타입의 포맷을 지정
public ResponseEntity showPerformanceInfo(@Valid @RequestParam(value = "date", required = true)
@DateTimeFormat(pattern = "yyyy-MM-dd") Date date,
@Valid @RequestParam(value = "title", required = false) String title) {
`.....
}
Date 타입을 테스트에 사용하기
- DataFormat 타입의 객체를 SimpleDateFormat() 생성자로 생성
- 이때 원하는 타입의 형태로 지정 가능
- Date 타입의 객체를 선언 후 DataFormat 타입으로 생성한 값을 parse하여 변경함
@Test
@DisplayName("[성공] 날짜를 정확하게 입력한 경우")
public void 공연_날짜_정보_조회() throws ParseException {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = format.parse("2020-06-20");
List<Performance> result = performanceRepository.findByStartDateGreaterThanEqualOrderByStartDateAsc(startDate);
assertThat(result.size()).isNotNull();
}
참고
'Development > Spring' 카테고리의 다른 글
redis 설치 및 redisson을 이용한 분산락 구현 (0) | 2021.10.09 |
---|---|
Spring Data JPA 쿼리메소드 (0) | 2021.09.25 |
Spring의 Transaction (0) | 2021.09.23 |
Spring? Spring Boot? Spring MVC? (0) | 2021.09.23 |
[JAVA 에러] java.lang.IllegalStateException: Ambiguous mapping found. (0) | 2021.09.23 |
댓글