zoe*_*vas 1 datetime android jodatime datepickerdialog
当我按下按钮显示DatePickerDialog时,对话框显示一个月更大.例如,如果我使用这样的当前日期(使用joda库的DateTime)启动:
DateTimeZone zone = DateTimeZone.forID("Europe/Athens");
DateTime dt = new DateTime(zone);
int year = dt.getYear();
int month = dt.getMonthOfYear();
int day = dt.getDayOfMonth();
Run Code Online (Sandbox Code Playgroud)
这是2014年7月7日,日期对话框显示更大的一个月07/09/2014.我不明白为什么会这样.
表示datePickerFragment的片段是:
@SuppressLint("ValidFragment")
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener{
@SuppressLint("ValidFragment")
TextView txtDate;
GlobalData appState;
public DatePickerFragment(TextView txtDate) {
super();
this.txtDate = txtDate;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
DateTimeZone zone = DateTimeZone.forID("Europe/Athens");
DateTime dt = new DateTime(zone);
int year = dt.getYear();
int month = dt.getMonthOfYear();
int day = dt.getDayOfMonth();
Log.i("DatePickerFragment day month year", day +" "+ month + " "+ year + "");
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
appState.setDateUserFrom(year, month, day);
Log.i("Date day month yerar", "Date changed." + day+" " + month + " " +year);
txtDate.setText(new StringBuilder().append(day)
.append("-").append(month).append("-").append(year)
.append(" "));
}
}
Run Code Online (Sandbox Code Playgroud)
DatePickerDialog采用的monthOfYear是0 to 11[0表示Jan ... 11表示Dec],以及您的DateTime返回值1 to 12.所以你需要做-1月值.
用这个:
return new DatePickerDialog(getActivity(), this, year, month - 1, day);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2142 次 |
| 最近记录: |