2013-10-05 3 views
1

Я использую Calendar API для управления датой. Вот фрагмент кода, который я пытаюсь сделать.Ошибка получения месяца при использовании объекта Calendar

Date date=new SimpleDateFormat("dd/mm/yyyy").parse("05/10/2013"); 
       Calendar cal=Calendar.getInstance(); 
       cal.setTime(date); 
       int month=cal.get(Calendar.MONTH); 

Здесь я должен получить месяц, как 9 (октябрь), но его возвращение 0 (январь) .Even если изменить дату она по-прежнему возвращает 0 (Jan). Почему это происходит? Пожалуйста, помогите мне.

ответ

2

использование MM вместо mm небольшой m дает минуту в час и получить Месяц использования капитала M

Date date=new SimpleDateFormat("dd/MM/yyyy").parse("05/10/2013"); 
Calendar cal=Calendar.getInstance(); 
cal.setTime(date); 
int month=cal.get(Calendar.MONTH); 
System.out.println("" + month); 

Выход:

9 

Java Docs

enter image description here

+0

-1 ОП пытается получить месяц. По вопросу OP должен получить 9, но его получение 0. По пути он получит 1; – SpringLearner

+0

удален downvote – SpringLearner

+1

отличный @ Tarsem.I был действительно смущен раньше. Получил это сейчас. Спасибо. –

2

иск MM вместо mm в данном формате даты. M указывает месяц, в то время как m указывает минута в соответствии с java doc.

Date date=new SimpleDateFormat("dd/MM/yyyy").parse("05/10/2013") 
    Calendar cal=Calendar.getInstance(); 
       cal.setTime(date); 
       int month=cal.get(Calendar.MONTH); // add +1 for correct month(10) otherwise it will be 9 
+0

отличный ответ, + 1 – SpringLearner

+0

@javaBeginner Спасибо :) – Sage

+0

Большое спасибо @ Sage.Now возвращается правильно. –

Смежные вопросы