2013-11-26 4 views
-1

달을 뺍니다자바 달력 개체 내가이 일을하여 달력 개체를 채우기 위해 노력하고있어

Date now = new Date(System.currentTimeMillis()); 
Calendar cal = Calendar.getInstance(); 
    cal.setTime(now); 

그것은 지금 2013년 11월 26일하지만 난이 인쇄

cal.get(Calendar.MONTH) 

을 10을 반환합니다.

어떻게 해결할 수 있습니까?

+3

왜 당신은'Calendar' 클래스의 문서를 읽을 수 있습니까? http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#MONTH –

+0

월별 번호를 사용자에게 표시하거나 파일에 쓰려면 다음을 수행해야합니다. SimpleDateFormat을 사용하여. 'Calendar.get'에 의해 리턴 된 숫자는 실제로 내부 용이므로,'Calendar.NOVEMBER'와 비교할 수 있습니다. –

답변

2

고칠 필요가 없습니다. 그것은 Calendar의 행동입니다. 현재 달 System.currentTimeMillis()를 사용하는

cal.get(Calendar.MONTH)

.

0부터 시작하기 때문에 10을 반환하십시오. 그래서 10은 11 번째 달입니다. 취득하고, 달을 나타내는 설정에 대한 Nov

0-Jan 
1-Feb 
- 
- 
1

즉이 Calendar.MONTH

필드 번호의 자바 독을 참조하십시오. 이것은 달력 관련 값입니다. 태양력과 율리우스 력의 해의 첫 달은 0

0

cal.get(Calendar.MONTH) + 1 1 월입니다 - 번호 매기기 당신은 인쇄 0

0

에서 시작 달 JAN을 경우

cal.get(Calendar.MONTH) 

수정 0 인 경우 NOV의 경우 10

1

Calendar 상수를 사용하십시오. 개월 동안 벌금 :

if(cal.get(Calendar.MONTH) == Calendar.NOVEMBER) 
    System.out.println("It's November."); 

Calendar의 달 필드는 배열 인덱스처럼, 제로입니다.

0

대조적으로 Joda-Time 2.3 라이브러리는 적절한 월 번호를 제공합니다. 예 : December = 12.

System.out.println("Today's month number: " + new org.joda.time.DateTime(2013, 12, 28, 19, 0, 0).getMonthOfYear()); 

실행 ...

Today's month number: 12