我已經爲我的應用程序創建了這個datePicker,並且一旦用戶選擇了一個日期,我就將它設置爲顯示一個Toast。在我轉向其他任何事情之前,這只是一個測試,但是,當我選擇一個顯示錯誤年份的日期時。例如,當我選擇今天的日期時,Toast將顯示:「日期是:3917-04-10」。爲什麼我的android中的日期選擇器顯示年份錯誤?
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener
{
SimpleDateFormat dateFormatter;
Date start;
String entered_Start;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
final Calendar calendar = Calendar.getInstance();
int yyyy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yyyy, mm, dd);
}
public void onDateSet(DatePicker view, int yyyy, int mm, int dd)
{
start = new Date(yyyy,mm,dd);
dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
entered_Start = dateFormatter.format(start);
Toast.makeText(getActivity(), "Date is: "+ entered_Start, Toast.LENGTH_LONG).show();
}
}
任何幫助表示讚賞。
編輯:我修好了。我所要做的就是改變這一行:
start = new Date(yyyy,mm,dd);
這一行:
start = calendar.getTime();
你設置'dateFormat'?默認情況下,datepicker dateformat是'Default:「mm/dd/yy」' – funcoding
您使用的不推薦使用的Date構造函數將1900年添加到年份。所以如果你通過2017年,你會得到一個在3917年的日期。如果你應該使用它(不推薦),你需要在2017年通過117。 –