2012-04-30 2 views
0

현재 내 문제는 DatePickerDialog에서 얻은 값이 Date 생성자에 보낼 때 올바르게 파싱되지 않는다는 것입니다. 날짜가 설정된다안드로이드 DatePickerDialog 잘못된 값을 얻을

04-30 21:34:10.548: I/TodosActivity(29510): listener => mYear=2012; mMonth=5; mDayOfMonth=2; 

....

:

private DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
      int dayOfMonth) { 
     mYear = year; 
     mMonth = monthOfYear + 1; 
     mDayOfMonth = dayOfMonth; 
     String t = "listener => mYear=" + mYear + "; mMonth=" + mMonth + 
       "; mDayOfMonth=" + mDayOfMonth + ";"; 
     Log.i(TAG, t); 
    } 
}; 

상기 로깅 문 수율 .... (another post의 제안에 따라) 날짜 값을 얻기

todo.setDueDate(new Date(mYear, mMonth, mDayOfMonth)); 

나는 기한을 ....

으로 확인했습니다. 결과 617,451,515,
String t = "setNewDueDate(Todo) => #" + todo.getId() + ": " + todo.getTitle() + " (" + 
      todo.getText() + "). Created on " + format.format(todo.getCreatedDate()) + 
      ". Last modified on " + format.format(todo.getModifiedDate()) + 
      ". Due on " + format.format(todo.getDueDate()) + "."; 
Log.i(TAG, t); 

....

04-30 21:34:05.703: I/TodosActivity(29510): setNewDueDate(Todo) => #1: Test (Test). Created on 30 Apr 2012 20:07:51. Last modified on 30 Apr 2012 20:55:27. Due on 31 Dec 1899 00:00:00. 

편집 :

초기 DatePickerDialog 값을 설정 ...

 return new DatePickerDialog(this, listener, cal.get(Calendar.YEAR), 
       cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); 

이 있나요이 내가해야/해본 적이 없어?

답변

4

Calendar 및 다양한 set() 방법을 사용하여 날짜를 업데이트하십시오. 예를 들어

, this sample project 같은 코드를 가지고 dateAndTimeCalendar이고

DatePickerDialog.OnDateSetListener d=new DatePickerDialog.OnDateSetListener() { 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
          int dayOfMonth) { 
     dateAndTime.set(Calendar.YEAR, year); 
     dateAndTime.set(Calendar.MONTH, monthOfYear); 
     dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
     updateLabel(); 
    } 
    }; 

.

관련 문제