значение даты Java не отображается правильно

У меня возникает следующая проблема при выполнении этой логики для даты Java:

 String weboutput = "OCT 27 08:20 PM";
 DateFormat formatter1 = new SimpleDateFormat("MMM DD hh:mm a" , Locale.US);
 inputTime = formatter1.parse(weboutput);
 Calendar calendar = GregorianCalendar.getInstance(); 
 Calendar today = new GregorianCalendar();
 calendar.setTime(inputTime); 
 int hour = calendar.get(Calendar.HOUR);
 int minute = calendar.get(Calendar.MINUTE);
 int month = calendar.get(Calendar.MONTH);
 System.out.println("\n"+month+"\n");
 int date = calendar.get(Calendar.DATE);
 today.setTime(new Date());
 today.set(Calendar.HOUR, hour);
 today.set(Calendar.MINUTE, minute);
 today.set(Calendar.MONDAY, month);
 today.set(Calendar.DATE, date);
 Date retrivedDate = today.getTime();
 System.out.println(retrivedDate);

Но это дает мне следующий результат: Tue Jan 27 20:20:12 IST 2015, вместо Jan.


person Pranav Nath    schedule 27.08.2015    source источник


Ответы (1)


вы должны использовать dd в нижнем регистре для даты

DateFormat formatter1 = new SimpleDateFormat("MMM dd hh:mm a" , Locale.US);

ДД - день года

дд - день месяца.

Дополнительные сведения см. В javadoc.

person Jens    schedule 27.08.2015
comment
Значит ли это, что пока я использую DD, я могу указать любое значение до 365, и, соответственно, будет выбран месяц? - person Pranav Nath; 27.08.2015
comment
@PranavNath Да, это значение дня года - person Jens; 27.08.2015
comment
Спасибо, Йенс, за подтверждение и поддержку, это было очень быстро и полезно, пройдемся по документу java doc, как было предложено. - person Pranav Nath; 27.08.2015