DatePicker
对话框。问题在于,无论我选择何种日期,返回的值恰好是所选日期之前一个月。这是我的代码:
活性
btnEventDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
});
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
DateTime dt = new DateTime(year, monthOfYear, dayOfMonth, 0, 0, 0, 0);
Log.d(Constants.TAG, "dt: " + dt.toString());
Log.d(Constants.TAG, "str: " + dateHandler.convertDateToYYYY_MM_DDString(dt));
}
DatePickerFragment
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), (OnDateSetListener)getActivity(), year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {}
}
当对话框出现时,它显然设置为今天的日期。假设我选择2015年10月12日,日志输出显示:
dt:2015-09-12T00:00:00.000-06:00
str:2015-09-12
我一定错过了什么。谁知道我做错了什么?
答案 0 :(得分:0)
请访问此链接,我认为月份从0到11开始,如果我错了,请忽略。
答案 1 :(得分:0)
从0
到12
的月份。从January
到Undecimber
。
尝试将它们与Calendar."MONTH"
进行比较。
示例:Calendar.OCTOBER == 9
链接:http://developer.android.com/reference/java/util/Calendar.html#MONTH。
注意:如果您使用GregorianCalendar
,则可以忽略第13个月。