2013-04-08 2 views
-3

동일한 패턴을 가진 경우 두 날짜를 비교하는 가장 간단한 방법입니다.다른 패턴으로 날짜 비교

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
     Date date1 = sdf.parse("2009-12-31"); 
     Date date2 = sdf.parse("2010-01-31"); 

     System.out.println(sdf.format(date1)); 
     System.out.println(sdf.format(date2)); 

     if(date1.after(date2)){ 
      System.out.println("Date1 is after Date2"); 
     } 

     if(date1.before(date2)){ 
      System.out.println("Date1 is before Date2"); 
     } 

     if(date1.equals(date2)){ 
      System.out.println("Date1 is equal Date2"); 
     } 

다른 패턴이 다른 2 개의 날짜를 비교하고 싶습니다.

예 :

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    Date date1 = sdf.parse("2009-12-31"); 
SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy"); 
    Date date2 = sdf2.parse("12/12/2012"); 

어떻게 같은

+0

의 잘못된 참조 자위대를 사용? – Zyerah

+1

당신은'date1'과'date2'를 가졌습니다. 이전처럼 그것들을 비교하십시오. 그게 다야! – SudoRahul

+1

나는 당신이 이미 유효한 날짜의 2 개의 유효한 인스턴스를 가지고 있다면, 그 다음에, equals가 작동 할 것이라고 믿는다. 그것은 이러한 인스턴스가 어떻게 구성되었는지에 달려 있지 않습니다. – UmNyobe

답변

2

당신은 같은 방법으로 날짜를 비교할 수 있습니다 할 수 있습니다. SimpleDateFormat은 단순히 다른 형식으로 날짜를 인쇄 (또는 파싱)하는 방법입니다. Java는 형식을 이해하고 날짜를 비교할 수 있습니다.

1

두 가지 다른 형식의 두 가지 다른 날짜를 구문 분석 한 후에도 parse() 메서드의 출력은 두 경우 모두 표준 java.util.Date 개체가됩니다. 그래서 평소처럼 그들을 비교할 수 있습니다.

마지막으로 2 java.util.Date 개체를 가지고 있기 때문에 두 형식 모두에서 구문 분석 한 형식이 중요하지 않으며 모든 경우에 개체를 비교하는 것은 중요합니다.

1

는이 코드에 sdf2

변경에 자위대를 교체하고 작동합니다 :

 SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy"); 
     Date date2 = sdf2.parse("12/12/2012"); 

당신은 방법을 비교하는 대신 sdf2