android - 日期选择器对话框与所选日期不匹配

标签 android android-alertdialog android-datepicker android-date

请引用下图:

enter image description here

上面的文字说 Thu, Oct 28, 1909...而日期选择器的实际值是 1902 年 1 月 3 日。 什么错误?

这是我的代码:

@SuppressWarnings("deprecation")
public void setTheDate(View v){
    showDialog(DATE_DIALOG_ID);
}

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DATE_DIALOG_ID:
        // set date picker as current date
        return new DatePickerDialog(this, datePickerListener, 
                year, month,day);
    }
    return null;
}

private DatePickerDialog.OnDateSetListener datePickerListener 
= new DatePickerDialog.OnDateSetListener() {

    // when dialog box is closed, below method will be called.
    public void onDateSet(DatePicker view, int selectedYear,
            int selectedMonth, int selectedDay) {
        year = selectedYear;
        month = selectedMonth;
        day = selectedDay;
        System.out.println("date" + year + month + day);
    }
}; 

DATE_DIALOG_ID 是一个最终常量,我在单击按钮时调用 setTheDate() 方法。

我做错了什么?

最佳答案

您可以使用此代码从日期选择器中检索值。 在 OnDateSetListener() 的 onDateSet() 方法中添加此代码

 TimestampField field = (TimestampField) fieldpicker;
 Timestamp timestamp = field.getTimestamp();
 timestamp.setYear(year - 1900);
 timestamp.setMonth(monthOfYear);
 timestamp.setDate(dayOfMonth);
 field.setTimestamp(timestamp);

这将以正确的格式显示日期

关于android - 日期选择器对话框与所选日期不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17695123/

相关文章:

android - 无法更改 AlertDialog 按钮的背景颜色

java - Android:EditText.getText().toString() 不起作用

java - 如何在 Android 的日期选择器对话框中显示所选日期的第二天的日期?

java - 无法访问 jsoup

android - buildConfigField 取决于 flavor + buildType

android - Google Map api 2 如何显示/隐藏 Google map ?

android - 将监听器添加到自定义警报对话框中的按钮会使我的应用程序崩溃

android - 如何更改日期选择器中的文本大小?

android - MaterialDatePicker 获取选择的日期

android - 无法在 ListView 中显示数据库