여행에 참여한 사람들은 여행이 종료되면, 게시글에 댓글 형태로 리뷰를 달 수 있다.
내용과 점수를 남겨 여행이 어땠는지 작성자에게 피드백을 줄 수 있다.
여행 종료일이 지나야 리뷰를 달 수 있도록 조건이 필요했다.
게시글의 종료 날짜를 받아오고, 현재 날짜를 생성해서 비교하기 위해 날짜 비교를 찾아보았다.
+ Date를 사용했을 때 메서드들이고, LocalDate를 사용하면 isBefore, isAfter로 바뀐다.
CompareTo()
이 메서드를 호출하는 LocalTime 객체와 매개변수로 전달된 LocalTime 객체를 비교하여
호출한 객체가 크면 양수, 작으면 음수, 같으면 0을 반환한다.
int compareDate = endDate.compareTo(today);
Before()
이 메서드를 호출하는 LocalTime 객체가 매개변수로 전달된 LocalTime 객체보다 이전 시간인지 체크하여
호출한 객체가 이전 날짜이면 true, 이후이거나 같으면 false를 반환한다.
boolean beforeDate = endDate.before(today);
After()
이 메서드를 호출하는 LocalTime 객체가 매개변수로 전달된 LocalTime 객체보다 이후 날짜인지 체크하여
호출한 객체가 이후 날짜이면 true, 이전이거나 같으면 false를 반환한다.
boolean afterDate = endDate.after(today);
equals()
이 메서드를 호출하는 LocalTime 객체와 매개변수로 전달된 LocalTime 객체가 동일한지 비교하여
같으면 true, 그렇지 않으면 false를 반환한다.
boolean equalDate = endDate.equals(today);
참고
https://developer-talk.tistory.com/644
2023년 5월 20일을 입력했는데.... 3923년????? 그리고 Jun??????
Date 객체 타고 들어가서 확인하니 1900년을 빼줘야 한다고 하네 :)
month는 0~11 범위이고..!
오늘도 이렇게 하나 배웁니다..!
endDate가 Date 형으로 되어있어서, isAfter을 사용하기 위해서는 LocalDate형으로 맞춰주어야 한다.
java.util.Date 클래스의 endDate를 형변환 하려는데, 자꾸 UnsupportedOperationException이 뜬다.
지원되지 않는 작업을 요청했다고 하는데.. 그게 뭘까?
우선 endDate 생성부분을 보니 원하는 날짜 정보만 저장하기 위해 TemporalType을 사용했다.
설명에 들어가보니까 map as java.sql.Date라고 되어있었다.
조금 더 찾아보다가 java.sql.Date에서 toLocalDate() 메서드를 사용해 데이터 타입을 변환할 수 있다는 걸 알았고, 적용해서 문제를 해결했다!!
참고
https://hianna.tistory.com/613
https://recordsoflife.tistory.com/336
'TIL' 카테고리의 다른 글
슬기의 TIL - 2023.05.31 (게시글 수정에 관한 깊은 고민) (0) | 2023.06.01 |
---|---|
슬기의 TIL - 2023.05.30 (Swagger + Docker log + Json boolean) (0) | 2023.05.30 |
슬기의 TIL - 2023.05.27 (0) | 2023.05.29 |
슬기의 TIL - 2023.05.26 (Doker) (0) | 2023.05.27 |
슬기의 TIL - 2023.05.25 (0) | 2023.05.25 |