2016-06-12 2 views
0
public void setDate(View view){ 
     Calendar calendar = Calendar.getInstance(); 

     new DatePickerDialog(CreateEventActivity.this,listener,calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); 
    } 

    DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
      Calendar setTime=Calendar.getInstance(); 
      setTime.set(year,monthOfYear+1,dayOfMonth); 
      eventDate=setTime.getTime(); 

      SimpleDateFormat dayFormat=new SimpleDateFormat("EEEE"); 
      eventDayOfWeek=dayFormat.format(eventDate); 

      Context appContext=getApplicationContext(); 
      Toast.makeText(appContext,(appContext.getString(R.string.The_chosen_date_is))+": "+dayOfMonth+"/"+(monthOfYear+1)+"/"+year+","+eventDayOfWeek,Toast.LENGTH_LONG).show(); 
      dateTxt.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year); 
      dayTxt.setText(eventDayOfWeek); 


     } 
    }; 

나는 (날짜 선택기로) 선택한 날짜를 사용자에게 표시하려고합니다. 숫자의 날짜는 괜찮지 만 문자열의 날짜는 2 일 앞으로 틀립니다. 예 : 토요일 대신 월요일을 씁니다.SimpleDateFormat의 날짜가 잘못되었습니다.

답변

1

잘못된 달이 있습니다. OnDateSetListener개월는 Calendar's처럼 제로하고 +1는 여기를 조절하려면 당신은 필요가 없습니다

setTime.set(year,monthOfYear+1,dayOfMonth); 
관련 문제