2012-09-12 3 views
0
try { 
      Date sysDate = new SimpleDateFormat("dd/mm/yyyy").parse(_sysDate); 
      Date userDate = new SimpleDateFormat("dd/mm/yyyy").parse(_userDate); 
      if (userDate.compareTo(sysDate) > 0) 
       return false; 
        else 
          return true; 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

위의 두 날짜가 크거나 없는지 확인하려면 다음 코드를 참조하십시오. 나는 포기하고 때 : SYSDATE =/이천십이분의 구 (12)와 userdate = 11/9 /을 2012 2012년 10월 8일 또는 15/9/2011 올바른 출력SimpleDateFormat 및 날짜 비교가 올바르지 않음

을주고있다하지만 포기하고 때 : sysdate = 12/9/2012 및 userdate = 13/8/2012 또는 15/7/2012 또는 16/6/2012 잘못된 출력을 제공합니다. 1 월 12 일에서 12 월 8 일 사이의 달을 선택하고 현재 day_of_month보다이 day_of_month (즉, 0,1,2, ..., 31)를 선택하면이 점에 도달했습니다. 12), 나는 항상 잘못된 결과를 얻는다.

가능한 해결 방법을 제안하십시오.

답변

4

문제 "일/월/년"하는 수단 대신 작은 "mm"와 "일/월/년」(중 (달 대문자"MM "으로)이어야 패턴 의사록). 다음과 같이

그래서, 그것은해야 -

try { 
    DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); 
    Date sysDate = df.parse(_sysDate); 
    Date userDate = df.parse(_userDate); 
    //... 
+2

현재 문자열이 사용되는 방식을 설명하기 위해 정교화 할 가치가 있습니다. 즉, 월 대신 * 분 *을 채우는 것입니다. –

+0

명성이 비슷하다 – Debopam

+0

@BheshGurung : 코드 예제에서'MM' 대신'mm'을 사용했다는 것을 제외하고는. – Squonk

1
try { 
      Date sysDate = new SimpleDateFormat("dd/MM/yyyy").parse(_sysDate); 
      Date userDate = new SimpleDateFormat("dd/MM/yyyy").parse(_userDate); 
      if (userDate.compareTo(sysDate) > 0) 
       return false; 
        else 
          return true; 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

날짜 패턴은 일/월/년 대신 의 일/월/년 잘못된 것입니다.

관련 문제