여행 예약 리스트 페이지에 체크인 날짜, 체크아웃 날짜가 'yyyy-MM-dd HH:mm:ss'으로 출력되었다. 당장은 시간까지는 필요가 없기 때문에 ''yyyy-MM-dd'으로 날짜 형식을 변환하고 싶었다.
// 숙소를 예약했을 때
@PostMapping("/book/save")
public String bookComplete(BookedHomeSaveRequestDto requestDto, @LoginUser SessionUser user)
throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
BookedHome bookedHome = BookedHome.builder()
.userid(user.getId())
.status(1)
.home(homeService.findById(requestDto.getId()))
.checkin(new Date(dateFormat.parse(requestDto.getCheckin()).getTime()))
.checkout(new Date(dateFormat.parse(requestDto.getCheckout()).getTime()))
.build();
homeService.addBookedHome(bookedHome);
return "redirect:/mypage/travel";
}
- new SimpleDateFormat("yyyy-MM-dd");
지정하고 싶은 날짜 형식을 생성했다.
- new Date(dateFormat.parse(requestDto.getCheckin()).getTime())
BookedHomeSaveRequestDto에 저장된 checkIn날짜(String)와 checkOut날짜(String)를 생성한 형식에 맞게 변환하고 날짜를 반환하여 Date 객체를 생성/저장하였다.
- 결과
'2021-11-03 00:00:00'과 같은 형식으로 출력되었다.
// 숙소를 예약했을 때
@PostMapping("/book/save")
public String bookComplete(BookedHomeSaveRequestDto requestDto, @LoginUser SessionUser user)
throws ParseException {
LocalDate checkIn = LocalDate.parse(requestDto.getCheckin(), DateTimeFormatter.ofPattern("yyyy-MM-dd")); //체크인 날짜 형식 변환
LocalDate checkOut = LocalDate.parse(requestDto.getCheckout(), DateTimeFormatter.ofPattern("yyyy-MM-dd")); //체크인 날짜 형식 변환
BookedHome bookedHome = BookedHome.builder()
.userid(user.getId())
.status(1)
.home(homeService.findById(requestDto.getId()))
.checkin(checkIn)
.checkout(checkOut)
.build();
homeService.addBookedHome(bookedHome);
return "redirect:/mypage/travel";
}
- LocalDate.parse(requestDto.getCheckin(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
BookedHomeSaveRequestDto에 저장된 checkIn날짜(String)와 checkOut날짜(String)를 'yyyy-MM-dd' 형식의 LocalDate 객체로 생성한다.
- .checkin(checkIn).checkout(checkOut)
BookedHome의 checkin, checkout필드의 타입을 기존과 동일하게 Date로 하면 똑같이 '2021-11-03 00:00:00'과 같은 형식으로 출력된다.
따라서 해당 필드의 타입을 LocalDate으로 변경해주었다.