코딩마을방범대
Date 비교 메소드 본문
728x90
Date 비교
Date는 안전하지 않은 Null 처리, 불안전한 스레드 처리, 메서드의 부재 등 다양한 문제가 있음
1. compareTo( )
0: 값이 동일한 경우
0보다 작은 값: 호출한 Date(date1) 객체가 이전 날짜인 경우
0보다 큰 값: 이후 날짜인 경우
// date1이 date2 보다 작으면 0보다 작은값
date1.compareTo(date2);
2. before( )
true: 호출한 Date(date1) 객체가 인수로 전달된 Date(date1) 객체보다 이전 날짜인 경우
false: 호출한 Date(date1) 객체가 이후 날짜이거나 동일한 경우
date1.before(date2);
3. after( )
true: 호출한 Date(date1) 객체가 인수로 전달된 Date(date1) 객체보다 이후 날짜인 경우
false: 이전 날짜이거나 동일한 경우
date1.after(date2);
4. equals( )
true: 동일한 경우
date1.equals(date2);
2. LocalDate 비교
1. compareTo( )
-1: 호출한 LocalDate(date1) 객체가 인수로 전달된 LocalDate(date2) 객체보다 이전 날짜인 경우
0: 동일한 날짜인 경우
1: 이후 날짜인 경우
date1.compareTo(date2);
2. equals( )
true: 동일한 경우
date1.equals(date2);
3. isBefore, isAfter, isEqual
이전, 이후, 동일한지 비교하여 boolean 값 리턴
date1.isBefore(date2);
date1.isAfter(date2);
date1.isEqual(date2);
💡 TIPS!
1. Query Method로 날짜 기준 조회 방법
// 현재보다 이전 날짜
Mail findAllSendDateBefore(Date now);
// 현재보다 이후 날짜
Mail findAllSendDateAfter(Date now);
2. 날짜 차이 계산하기
- 밀리초 단위로 출력됨
long diff = firstDate.getTime() - secondDate.getTime();
- 연도 구하기
- 일 수 구하기
- 시간 구하기
- 분 구하기
- 초 구하기
(diff / (365 * 24 * 60 * 60 * 1000L));
(diff / (24 * 60 * 60 * 1000L)) % 365;
(diff / (60 * 60 * 1000L)) % 24;
(diff / (60 * 1000L)) % 60;
(diff / 1000) % 60;
728x90
'💡 백엔드 > Java' 카테고리의 다른 글
Contoller의 오류 (0) | 2023.05.27 |
---|---|
Java로 메일 가져오기 (0) | 2023.05.26 |
Entity에서 암복호화 & JAVA 비동기 처리(Thread) (0) | 2023.05.26 |
Java로 메일 발송하기 (0) | 2023.05.26 |
yml 정보 클래스로 가져오기 (0) | 2023.05.26 |