2013-04-26 11 views
2

좋아, 그럼 내가하려는 것은 캘린더 인스턴스의 날짜를 설정 한 다음 week_of_year를 반환하는 것입니다.캘린더 날짜 설정

String[] arrDate = dateIn.split("/"); 
int lMonth = Integer.parseInt(arrDate[0]) - 1; 
Log.d("SaveHandler", "Month is: " + lMonth); 
int lDay = Integer.parseInt(arrDate[1]); 
Log.d("SaveHandler", "Day is: " + lDay); 
int lYear = Integer.parseInt(arrDate[2]); 
Log.d("SaveHandler", "Year is: " + lYear); 
: 나는 lYear, lMonth 및 lDay 값을 얻으려면

public String weekInYearForm = "ww"; 
SimpleDateFormat formWIM = new SimpleDateFormat(weekInYearForm, Locale.US); 

Calendar lc = Calendar.getInstance(); 
    lc.set(Calendar.YEAR, lYear); 
    lc.set(Calendar.MONTH, lMonth); 
    lc.set(Calendar.DAY_OF_MONTH, lDay); 


    wiy = formWIM.format(lc.get(Calendar.WEEK_OF_YEAR)); 

능의는 Calendar.set()를 사용하여 그렇게하고, 나는 다음과 같은 단계에 형식 04/26/2013에 문자열을 전달하고있다

내가 직면 한 문제는 wiy로 출력되는 것을 볼 때 항상 1이라는 것입니다. 추가 디버깅을 수행 할 때, 시간이 제 시간에 남겨져 있고 필요한 값으로 설정되지 않았다는 것을 깨달았습니다. .

lc.set(lYear, lMonth, lDay)도 사용해 보았습니다. 누구든지 아이디어가 있다면, 나는 그들을 크게 감사 할 것입니다.

* 편집 : 이전에 디버깅을 해봤지만 올해 1970 년과 0 월을 반환합니다.

+1

'Calendar'의'Calendar.MONTH' 필드는 0이 아니라 우리가 익숙했던 것처럼 0입니다. 어쩌면 문제가있을 수 있습니다. –

+0

아니요, 저는 그것에 대해 생각해 보았고 설정하기 전에 1을 빼기로했습니다. – ubundude

+0

Java 클래스를 사용하거나 Joda Time과 같은 타사 라이브러리를 사용해야 만 이러한 모든 문제가 이미 해결 되었습니까? –

답변

3

사용

formWIM.format(lc.getTime()); 

대신

formWIM.format(lc.get(Calendar.WEEK_OF_YEAR)); 

편집
당신은

SimpleDateFormat monthDayYear = new SimpleDateFormat("MM/dd/yyyy", Locale.US); //04/26/2013 
    Date date = monthDayYear.parse("04/26/2013"); 

다음 형식 (대신 dateIn.split( 등) 날짜를 구문 분석 할 수 그것

SimpleDateFormat formWIM = new SimpleDateFormat("ww", Locale.US); 
formWIM.format(date); 
+0

예,이 문제가 해결되었습니다. 정말 고맙습니다! – ubundude

0

이 코드는이고, 문제는 formWIM.format(...)이며, 마더 보드 시계의 배터리가 소모되었습니다.

관련 문제