Android 要根据所选日期显示日期和月份吗

Android 要根据所选日期显示日期和月份吗,android,date,Android,Date,这里我得到了正确的日期,但日期没有改变,月份显示为一月(每个月都显示为一月)有关您检查的更多格式。我对其他月份的相关格式给出了评论 calendar.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { @Override public void onSelectedDayChange(CalendarView view, int year, int month, int

这里我得到了正确的日期,但日期没有改变,月份显示为一月(每个月都显示为一月)

有关您检查的更多格式。我对其他月份的相关格式给出了评论

  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);
            }

        }


    });
您可以这样做:

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);

我已经检查过了,它可以正常工作。

方法
format()
中的第二个参数需要是
Calendar
对象、
Date
对象或表示当前时间(毫秒)的
long
。您正在传递一个
日历
类常量,这毫无意义。
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());