본문 바로가기

IT/JAVA

[JAVA] JAVA 시간차이구하기, 시간비교하기 after(), before()

반응형


JAVA 시간비교하기 after(), before()

종종 설정해둔시간이 지났는지 안지났는지 체크해야할 일이 생긴다.

이럴때 보통 after(), before() 를 사용해서 비교를 한다.

이게 사용 할때마다 before, after 결과값이 헷갈려서 정리할겸 한번.. 끄적끄적

after()

비교할시간.after(기준시간)
비교할시간이 기준시간을 지나지 않았을 경우 false를 반환하고 지났을 경우에는 true를 반환한다.

before()

비교할시간.before(기준시간)
after와 반대로 비교할시간이 기준시간을 지나지 않았을 경우 true를 반환하고 지났을 경우에는 false를 반환한다.
정말 간단한 테스트 소스

SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd");
			
try {
    Date date1 = dateFormat.parse("2021-02-03");
    Date date2 = dateFormat.parse("2021-02-24");

    Date date3 = dateFormat.parse("2021-01-24");

    //after
    boolean aftertest = date1.after(date2);
    boolean aftertest2 = date1.after(date3);

    System.out.println("----------------------------------------");
    System.out.println("After Test Date1: " + dateFormat.format(date1)+ " / Date2: " + dateFormat.format(date2) + " result :" + aftertest);
    System.out.println("After Test Date1: " + dateFormat.format(date1)+ " / Date3: " + dateFormat.format(date3) + " result :" + aftertest2);
    System.out.println("----------------------------------------");

    //before
    boolean beforetest =  date1.before(date2);
    boolean beforetest2 =  date1.before(date3);
    System.out.println("----------------------------------------");
    System.out.println("BeforeTest Date1: " + dateFormat.format(date1)+ " / Date2: " + dateFormat.format(date2) + " result :" + beforetest);
    System.out.println("BeforeTest Date1: " + dateFormat.format(date1)+ " / Date3: " + dateFormat.format(date3) + " result :" + beforetest2);
    System.out.println("----------------------------------------");
} catch (ParseException e) {
// TODO Auto-generated catch block
//				e.printStackTrace();
}


결과는 다음과 같다.


위 방법을 안쓰고 그냥 시간 값을 구해서 부등호로 비교를 해도 되긴하다

long nowTime = System.currentTimeMillis();
long checkTime = nowTime - (60 * 60 * 1000); //-1시간
long checkTime2 = nowTime - (120 * 60 * 1000); //-2시간

SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String str2 = timeFormat.format(new Date(checkTime));
String str3 = timeFormat.format(new Date(checkTime2));
System.out.println();
System.out.println("checkTime ="+ str2 + "/" + checkTime);
System.out.println("checkTime2 ="+str3 + "/" + checkTime2);

System.out.println("----------------------------------------");

if(checkTime > nowTime) {
System.out.println("안지났다");
}else {
System.out.println("지났다");
}
System.out.println("----------------------------------------");

결과는 다음과 같다.

위 방법을 사용할시 부등호 방향을 꼭 잘 체크해서 사용 해야한다!

728x90
반응형