Диалоговое окно Datepicker не соответствует выбранной дате

Пожалуйста, обратитесь к следующему изображению:

Введите описание изображения здесь

Текст выше говорит Thu, 28 октября 1909 года …, в то время как datepicker фактически имеет значение 3rd jan, 1902. Какая ошибка?

Вот мой код:

@SuppressWarnings("deprecation") public void setTheDate(View v){ showDialog(DATE_DIALOG_ID); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG_ID: // set date picker as current date return new DatePickerDialog(this, datePickerListener, year, month,day); } return null; } private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { // when dialog box is closed, below method will be called. public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { year = selectedYear; month = selectedMonth; day = selectedDay; System.out.println("date" + year + month + day); } }; 

DATE_DIALOG_ID – конечная константа, и я вызываю метод setTheDate () одним нажатием кнопки.

Что я делаю не так?

Просто попробуйте это, как и ваш код, но он работает для меня.

 Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); y = c.get(Calendar.YEAR); m = c.get(Calendar.MONTH); dy = c.get(Calendar.DAY_OF_MONTH); DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Log.d("err", "onselect"); mYear = year; mMonth = monthOfYear; mDay = dayOfMonth; } }; DatePickerDialog d = new DatePickerDialog(getActivity(), mDateSetListener, mYear, mMonth, mDay); d.show(); 

Вы можете использовать этот код для извлечения значения из средства выбора даты. Добавьте этот код внутри onDateSet() method of OnDateSetListener()

  TimestampField field = (TimestampField) fieldpicker; Timestamp timestamp = field.getTimestamp(); timestamp.setYear(year - 1900); timestamp.setMonth(monthOfYear); timestamp.setDate(dayOfMonth); field.setTimestamp(timestamp); 

Это отображает дату в правильном формате