[Aribnb]年-月-日(yyy-MM-dd)形式出力


問題の状況


旅行予約票ページでは、登録日、決済日が「yyy-MM-dd HH:mm:ss」と出力されます.今は時間がかかりませんので、日付フォーマットを「yyy-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に格納されているチェックイン日とチェックアウト日を生成されたフォーマットに変換し、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に格納されているチェックイン日(String)とチェックアウト日(String)をyyy-MM-dd形式のLocalDateオブジェクトとして作成します.
- .checkin(checkIn).checkout(checkOut)
BookedHomeのcheckin、checkoutフィールドのタイプは既存のものと同じで、「2021-11-0300:00」のように同じフォーマットで出力されます.
したがって、このフィールドのタイプをLocalDateに変更します.

🟢 出力結果