如何从我的EditText获取具有格式化日期的Date对象(通过Spinner存储)

时间:2018-08-27 15:11:39

标签: java android android-studio

我使用Spinner弹出窗口(通过单击EditText)通过EditText获得了格式化日期。我如何将格式化的日期存储为Date对象以存储到数据库中。下面是代码示例

Context context = this;
Calendar myCalendar = Calendar.getInstance();
String dateFormat = "dd / MM / yyyy";
DatePickerDialog.OnDateSetListener date;
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.UK);

private EditText mDOB = findViewById(R.id.date_of_birth);
private Date dateOfBirth;


 private void datePicker() {

    // init - set date to current date
    long currentdate = System.currentTimeMillis();
    String dateString = sdf.format(currentdate);
    mDOB.setHint(dateString);

    // set calendar date and update editDate
    date = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {
            myCalendar.set(Calendar.YEAR, year);
            myCalendar.set(Calendar.MONTH, monthOfYear);
            myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            updateDate();
        }

    };

// onclick - popup datepicker
    mDOB.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            new DatePickerDialog(context, date, myCalendar
                    .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                    myCalendar.get(Calendar.DAY_OF_MONTH)).show();
        }
    });
}

private void updateDate() {
    mDOB.setText(sdf.format(myCalendar.getTime()));
    dateOfBirth = mDOB.???
}

1 个答案:

答案 0 :(得分:0)

来自Datatypes In SQLite Version 3

  

SQLite没有预留存储类来存储日期   和/或时间。相反,SQLite内置的日期和时间函数   能够将日期和时间存储为TEXT,REAL或INTEGER   值。

因此,您不会将 date存储为Date
根据需要设置日期格式并将其存储为TEXT
myCalendar.getTime()存储为INTEGER