SimpleDateFormat 给出了错误的日期
SimpleDateFormat is giving wrong day
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 天 forward.For 例如:星期六而不是星期一。
你找错月份了。 OnDateSetListener
months are zero-based like Calendar
's 而且您不需要 +1
在这里调整它们:
setTime.set(year,monthOfYear+1,dayOfMonth);
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 天 forward.For 例如:星期六而不是星期一。
你找错月份了。 OnDateSetListener
months are zero-based like Calendar
's 而且您不需要 +1
在这里调整它们:
setTime.set(year,monthOfYear+1,dayOfMonth);