2014-08-28 7 views
-1

Может ли кто-нибудь сказать мне, почему дата установлена ​​на следующий месяц, а не на этот месяц?DatePicker месяц установки

Несмотря на то, что im установил dateFormatted variable как «28/08/2014», установив дату «28/07/2014».

Я могу просто пойти -1 в месяц, но это испортит дату в январе.

Есть ли другой способ, которым я должен установить дату?

Благодаря

 UtilDateModel model; 
     JDatePanelImpl datePanel; 
     DatePickerImpl datePicker; 

     model = new UtilDateModel(); 
     model.setDate(yearInt, monthInt, dayInt); 
     model.setSelected(true); 
     datePanel = new JDatePanelImpl(model); 
     datePicker = new JDatePickerImpl(datePanel); 


     // String dateFormatted = (String) result[1]; 
     String dateFormatted = "28/08/2014"; 
     System.out.println("Date Formatted : " + (String) result[1]); 
     int day = Integer.parseInt(dateFormatted.substring(0, 2)); // Correct 
     int month = Integer.parseInt(dateFormatted.substring(3, 5)); // Correct 
     int year = Integer.parseInt(dateFormatted.substring(6, 10)); // Correct 
     System.out.println(day); 
     System.out.println(month); 
     System.out.println(year); 
     model.setDate(year, month, day); 
     model.setSelected(true); 

ответ

1

Вы делаете дату разбора неправильно, пожалуйста, используйте SimpleDateFormat или как

Проблема, которую вы видите, вероятно, связано с тем, что некоторые поля 0 на основе и некоторые из них основаны на 1.

UPDATE

Даты не должны храниться в виде строки в базе данных, вместо того, чтобы использовать доступные типы даты.

Дата синтаксического анализа в целом намного сложнее, чем вы думаете. DST, високосные годы, язык, ... все вступает в игру.

Новейшая итерация java имеет полную переписку для обработки даты на основе времени joda (http://www.joda.org/joda-time/), но вы также можете использовать «старый» способ синтаксического анализа даты в java, который неплох, просто отличается.

Вы должны посмотреть на javadoc SimpleDateFormat, он скажет вам, почему вам нужен нижний регистр «yyyy», например, и верхний регистр «MM». Форматировщик предоставит вам дату, которую вы можете исследовать с помощью Calendar для необходимых полей.

Все это будет учитывать все детали, связанные с обработкой дат.

+0

Хорошо спасибо, что имеет смысл с массивом индекса 0. Также, когда вы говорите им, что не ошибаетесь, вы можете дать мне краткое объяснение или ссылку о том, как установить DatePicker из строки. Например, он хранится в базе данных как строка «28/08/2014». Это неправильный способ хранения даты в SQL? Также мы используем другой формат в Ирландии. Это hink thats, почему я не мог использовать SimpleDateFormat. Мы используем DD/MM/YYYY. – user237462

+0

Спасибо, что здорово. – user237462

-1

Я не знаком с пакетом «JDatePicker», но после ряда исследований я нашел this, пожалуйста, прочитайте статью 3 на этой странице. Он говорит, что число месяцев равно 0, поэтому januari должно быть 0 (1-й месяц минус 1).

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