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