2015-12-17 4 views
0
calendar.setOnDateChangeListener(new CalendarView.OnDateChangeListener() 

    { 
     @Override 
     public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) { 
      if (isStartSelection) { 
       String firstdate=String.valueOf(dayOfMonth); 
       String dayofstartweek=(String)android.text.format.DateFormat.format("EEE",Calendar.DAY_OF_WEEK); 
       String firstmonth=(String)android.text.format.DateFormat.format("MMM",month); 
       tvSelectedFirstDate.setText(firstdate); 
       tvSelectedFirstMonth.setText(firstmonth); 
       tvSelectedFirstDay.setText(dayofstartweek); 
      } else { 
       String enddate=String.valueOf(dayOfMonth); 
       String dayofendweek=(String)android.text.format.DateFormat.format("EEE",Calendar.DAY_OF_WEEK); 
       String endmonth=(String)android.text.format.DateFormat.format("MMM",month); 
       tvSelectedEndDate.setText(enddate); 
       tvSelectedEndDay.setText(dayofendweek); 
       tvSelectedEndMonth.setText(endmonth); 
      } 

     } 


    }); 

Здесь я получаю правильную дату, но день не меняется и месяц показывает, как Ян (за каждый месяц он показывает, как Ян)Хочет показать день и месяц в соответствии с выбранной датой

+0

Второй аргумент в методе 'format()' должен быть объектом «Календарь», «Date» или «long», представляющим текущее время в миллисекундах. Вы передаете константу класса «Календарь», что не имеет смысла. –

ответ

0

Вы можете сделать это так:

String firstdate=String.valueOf(17); 
Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.MONTH, month - 1); 
String dayofstartweek= new SimpleDateFormat("EEE").format(calendar.getTimeInMillis()); 
String firstmonth= new SimpleDateFormat("MMM").format(calendar.getTimeInMillis()); 

Я проверил, он отлично работает.

0

Для более связанный с вами формат, проверьте here. Я даю комментарий для другого формата месяца.

int dayOfMonth = 20; 
     int month = 1; 
     int year = 2015; 
     Calendar cal = Calendar.getInstance(); 
     cal.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
     cal.set(Calendar.MONTH, month - 1); 
     cal.set(Calendar.YEAR, year); 
     SimpleDateFormat format = new SimpleDateFormat("MMMM"); 

     //You can give different code in SimpleDateFormat for month 
     // = new SimpleDateFormat("MM") 
     //or = new SimpleDateFormat("M") 
     String strMonth = format.format(new Date(cal.getTimeInMillis())); 
     Log.e("Month", strMonth); 
     format = new SimpleDateFormat("dd"); 
     String strdate = format.format(new Date(cal.getTimeInMillis())); 
     Log.e("Date", strdate); 

     format = new SimpleDateFormat("yyyy"); 
     String strYear = format.format(new Date(cal.getTimeInMillis())); 
     Log.e("Year", strYear);