자바에서 날짜(시간)를 비교하는 방법 3가지 정도 소개해 보겠습니다. 1. after, before 사용 => ex) date1.after(date2) 2. compareTo 사용 => ex) date1.compareTo(date2) 3. getTime 사용 => ex) date1.getTime() < date2.getTime() ----------------------------------------------------------------------------------------- 1은 이전 게시물에 있으니 참고 바랍니다.] 2. compareTo() - java.util.Date 클래스에 속해 있음 - int 형 - 파라미터 Date 형 필요 - date1.compareTo(date2) => date1이 date2보다 이후날짜이면 1을 반환, 그 반대의 경우 -1을 반환(date1, date2는 형 식(타입)이 같아야 한다.) ex) SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //cf. HH는 24시간, hh는 12시간 Date start = null; Date end = null; Date now = new Date(); Date today = format.parse(format.format(now)); start = format.parse("2018-04-01 13:30:00"); end = format.parse("2018-06-01 17:00:00"); int compare = today.comparTo(start); // int compare2 = today.comparteTo(end); // if(compare > 0){ }if else(compare >= 0 && compare2 < 0){ }else{ } 3. getTime() - java.util.Date 클래스에 속해 있음 - long 형 - 부등호를 사용하여 조건문에서 비교 가능 ex) String start = "20180524100500"; String end = "20180524100600"; SimpleDateFormat format = new SimpleDateformat("yyyyMMddHHmmss"); Date now = new Date(); Date start_t = format.parse(start); Date end_t = format.parse(end); if(now.getTime() < start_t.getTime()){ }else if(start_t.getTime() <= now.getTime() && now.getTime() < end_t.getTime()){ }else{ }
JAVA 버전에 따라 날짜 비교하는 방법이 다릅니다.
JAVA8 이전1. Datejava.util.Date 클래스를 이용하여 날짜를 비교할 수 있습니다.
public boolean after(Date when) - 주어진 날짜가 매개변수로 전달받은 날짜보다 클 경우 true를 리턴하게 됩니다.
public boolean before(Date when) - 주어진 날짜가 매개변수로 전달받은 날짜보다 작을 경우 true를 리턴하게 됩니다.
public boolean equals(Object obj) - 주어진 날짜가 매개변수로 전달받은 날짜와 같을 경우 true를 리턴하게 됩니다.
public int compareTo(Date date2) - 주어진 날짜가 매개변수로 전달받은 날짜와 같을 경우 0을 리턴 - 주어진 날짜가 매개변수로 전달받은 날짜보다 클 경우 양수를 리턴 - 주어진 날짜가 매개변수로 전달받은 날짜보다 작을 경우 음수를 리턴합니다.
2. CalendarCalendar 클래스 역시 java.util.Date 클래스와 비슷한 메서드를 가지고 있습니다.
public boolean after(Object when) - 주어진 날짜가 매개변수로 전달받은 날짜보다 클 경우 true를 리턴하게 됩니다.
public boolean before(Object when) - 주어진 날짜가 매개변수로 전달받은 날짜보다 작을 경우 true를 리턴하게 됩니다.
public boolean equals(Object obj) - 주어진 날짜가 매개변수로 전달받은 날짜와 같을 경우 true를 리턴하게 됩니다.
public int compareTo(Calendar calendar 2) - 주어진 날짜가 매개변수로 전달받은 날짜와 같을 경우 0을 리턴 - 주어진 날짜가 매개변수로 전달받은 날짜보다 클 경우 양수를 리턴 - 주어진 날짜가 매개변수로 전달받은 날짜보다 작을 경우 음수를 리턴합니다.
JAVA8 이후1. LocalDatepublic boolean isAfter(ChronoLocalDate other)
2. LocalDateTimeLocalDateTime 클래스도 LocalDate 클래스와 같이 날짜와 시간 비교를 위해 다음과 같은 메서드를 사용할 수 있습니다.
LocalDateTime의 isAfter() isBefore() isEqual() compareTo() 메서드는 날짜와 시간단위까지 비교할수 있습니다.
3. LocalDate와 LocalDateTime 비교LocalDate와 LocalDateTime을 비교할 땐, LocalDateTime을 LocalDate로 변환하여 비교할 수 있습니다.
4. LocalDateTime에서 날짜, 시간, 분 단위로 비교LocalDateTime의 truncatedTo() 메소드는 매개변수로 지정된 단위 이후의 값들을 버린 후,
이때, 매개변수로 전달되는 단위는 ChronoUnit 클래스에 지정된 상수를 사용하며 ,
아래 예제에서는 각 단위별로 비교를 하기 위해 truncatedTo() 메서드를 사용하여
반응형 공유하기 게시글 관리 구독하기무사뎀벨레의 블로그'LANGUAGES > Back-End' 카테고리의 다른 글[Spring] @RequestBody, @ResponseBody의 사용 (2)2022.10.06[JAVA] Log4j의 정의와 설정 (2)2022.09.06[JAVA] Get 방식과 Post 방식 (2)2022.06.03[JAVA] 현재 날짜, 시간 구하기 (2)2022.05.03[JAVA] Collection Framework(List, Queue, Set)과 MAP (4)2022.03.31 |