Calendar,
SimpleDateFornmat
클래스를 이용해서 월별 날짜를 불러오려고합니다
this.mCalander = Calendar.getInstance();
this.mDf = new SimpleDateFormat("yyyy-MM-dd");
for (int i = currentYear; i <=year ; i++) {
mCalander.set(Calendar.YEAR, i);
for (int j = 0; j <= 11; j++) {
mCalander.set(Calendar.MONTH, j);
Log.d("INFO", "MONTH : " + (j + 1));
int maxDay = mCalander.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int k = 1; k <= maxDay; k++) {
mCalander.set(Calendar.DAY_OF_MONTH, k);
Log.d("INFO", mDf.format(this.mCalander.getTime()));
}
}
}
3중 for문으로 년, 월, 일을 돌려봤더니 Log출력은
2017-01-30
2017-01-31
MONTH : 2
2017-03-01
2017-03-02
이런식으로 2월인데 데이터는 3월로 나오는 현상이나오네요
왠지 calendar.set 함수가 asynchorize이여서 이런 결과값이 나오는거 같은 느낌인데..
이렇게 나오는 이유가 뭘까요 ?
그리고 월별 날짜를 출력하기 위해서 보다 정상적으로 나은방법이 있을까요 ?