본문 바로가기
JAVA

[JAVA] String날짜 형태 비교 방법!! (compareTo 사용법)

by GoodDayDeveloper 2021. 12. 27.
반응형

 

안녕하세요. 오늘은 간단히 자바에서 string형태의 날짜 형식을 비교하는 방법에 대해 설명해보겠습니다.

자바에서 데이터 형식에서 연산식(ex: =, < ,>)을 사용하기도 하고,

또한 메서드를 활용하는 방식 두가지가 존재합니다.

 

메서드 활용 방식은 compareTo 메서드를 사용할 예정이며,

비교 연산 방법은 Date상태에서의 getTime 메서드를 활용하는이야기해보겠습니다.

 

 

 

  • 1. compareTo Method
  • 2. Date 연산 방법

 

 

 

 

1. compareTo Method

 

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//오늘날짜 yyyy-MM-dd로 생성
String todayfm = new SimpleDateFormat("yyyy-MM-dd").format(new Date(System.currentTimeMillis()));
 
//yyyy-MM-dd 포맷 설정
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 
//비교할 date와 today를데이터 포맷으로 변경
Date date = new Date(dateFormat.parse(vo.getPrgm_edate()).getTime()); 
Date today = new Date(dateFormat.parse(todayfm).getTime());
 
//compareTo메서드를 통한 날짜비교
int compare = date.compareTo(today); 
 
//조건문
if(compare > 0) {
  System.out.println("date가 today보다 큽니다.(date > today)");
}else if(compare < 0) {
  System.out.println("today가 date보다 큽니다.(date < today)");
}else {
  System.out.println("today와 date가 같습니다.(date = today)");
}
cs

 

 

오늘날짜를 설정하고 날짜형식 포맷을 설정합니다.

 

비교할 데이터와 오늘날짜를 데이터 형태로 변경한다음,

compareTo메서드를 통해 변수에 넣어줍니다.

 

즉, 데이터를 오늘날짜랑 비교했을때 데이터가 크면 양수가 들어가고 작을땐 음수가 들어갑니다.

이를 활용해서 조건문에 여러 기능을 설정할 수 있습니다.

 

 

 

 

 

 

 

 

반응형

 

 

 

 

 

 

2. Date 연산 방법

 

자바에서 세개의 날짜를 비교할 경우가 발생할 수 있습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
String str_sdate ="2023-01-01";
String str_edate ="2023-12-31";
boolean dateChk = false;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 
Date refdate = new Date(); 
Date sdate = new Date(dateFormat.parse(str_sdate).getTime()); 
Date edate = new Date(dateFormat.parse(str_edate).getTime());
 
 
if(refdate.getTime() >= sdate.getTime()  && refdate.getTime() <= edate.getTime()) {
   dateChk = true;
}
cs

 

 

그럼 위와 같이 스트링을 데이터형식 포맷 형식으로 변환해준 다음,

getTime 메서드를 통해서 연산 비교해주면 됩니다.

추가로 boolean 타입의 변수를 안에 넣어주면 활용성이 높아집니다~

 

 

 

 

 

반응형

댓글