2015-01-27 2 views
1

내가단지 중 하나를 변환하지 않고 단지

A = [JAN-2014, FEB-2014, MARCH-2014] 
B = [1-JAN-2014, 13-FEB-2014, 29-MARCH-2014] 
C = [2014-Jan, 2014-Feb, 2014-March] 

은 달을 기준으로 3 개 배열 사이의 날짜를 비교하는 것이 가능 다음과 같은 배열을 가지고 있다고 알고 싶은 날짜의 특정 부분을 비교 배열의 날짜 형식 중 다른 것을 따라 가야합니까?

+1

의 정수 값을 비교할 수 있습니다. –

+0

정말로 적절한 날짜로 변환해야합니다. 문자열 해킹은 어떻게 든 더 빨라질 수 있지만 확실히 읽기 쉽고 오류가 발생하기 쉽습니다. – meskobalazs

+0

날짜를 구문 분석하고'java.util.Date' 또는'java.util.Calendar'와 비교하십시오 – Jens

답변

1

그때

public static final SimpleDateFormat SDF_DATE = new SimpleDateFormat("yyyy MMM dd"); 
    public static final SimpleDateFormat SDF_HOUR = new SimpleDateFormat("HH:mm:ss"); 

    public String getDateAddedToString() { 
      return DateFormatters.SDF_DATE.format(dateAdded.getTime()); 
    } 

.. 그리고를 사용하는 것이 좋습니다 .. 개월

"example_string".equals(getDateAddedToString());

사용 :

public static final SimpleDateFormat SDF_MONTH = new SimpleDateFormat("MMM")

또는 사용 substring 및String 클래스의입니다.

감사합니다. 그들은 나는 그들이 당신이 사용할 수있는 달 정수 필드가 것이라고 믿고 싶습니다 자바 Date 객체로 표현하는 경우

0
String aString = "JAN-2014"; 
SimpleDateFormat aDateFormat = new SimpleDateFormat("mmm-yyyy"); 
Date aDate = aDateFormat.parse(aString); 

String bString = "13-FEB-2014"; 
SimpleDateFormat bDateFormat = new SimpleDateFormat("dd-mmm-yyyy"); 
Date bDate = bDateFormat.parse(bString); 

String cString = "2014-feb"; 
SimpleDateFormat cDateFormat = new SimpleDateFormat("yyyy-mmm"); 
Date cDate = cDateFormat.parse(cString); 

Calendar aCal = Calendar.getInstance(); 
aCal .setTime(aDate); 

Calendar bCal = Calendar.getInstance(); 
bCal .setTime(bDate); 

Calendar cCal = Calendar.getInstance(); 
cCal .setTime(cDate); 

int aMonth = aCal.get(Calendar.MONTH); 
int bMonth = bCal.get(Calendar.MONTH); 
int cMonth = cCal.get(Calendar.MONTH); 

는 그런 다음 달

+0

죄송합니다. 같은 달에 'Feb'및 'March'의 월 형식으로 문제가 있음을 발견했습니다. 배열 이제 이것을 살펴볼 것입니다. – Mutton92