如何将字符串转换为可以存储在数据库中的日期?

How to convert String to Date which can be store in database?

我使用 DatePicker 并在方法 onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) 中得到年、年月和月日,如何将这 3 个 int 合并到一个我可以用来存储在数据库中的日期?

实例化一个日历:

Calendar cal = Calendar.getInstance();

使用它的方法设置日期:

cal.set(int year, int month, int day);

然后将其存储为时间戳整数

cal.getTimeInMillis()

或作为字符串

cal.toString()

您可以使用 SimpleDateFormatter.

将其转换为 dd/mm/yyyy 格式的 String

然后当您想要检索它时,使用一些 String 操作来检索每个单独的组件并构造一个 Date 对象。

你可以这样做

Calendar myCalendar = Calendar.getInstance();

DatePickerDialog.OnDateSetListener 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);
        updateLabel();
    }
};

private void updateLabel() 
{
    String myFormat = "MM/dd/yy"; //In which format you need put here
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

    textview.setText(sdf.format(myCalendar.getTime()));
}

希望对您有所帮助

试试这个:

private SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");

private void datePicker(Date initialDate) {
    Calendar cal = Calendar.getInstance();
    if (initialDate != null) {
        cal.setTime(initialDate);
    }
    new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            String data = String.format("%02d/%02d/%04d", dayOfMonth, monthOfYear + 1, year);
            try {
                Date newDate = format.parse(data);
                saveMyDate(newDate);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)).show();
}

private void saveMyDate(Date newDate) {
    // do something
}

使用日历设置年月日

 GregorianCalendar cal = new GregorianCalendar();
 cal.set(GregorianCalendar.YEAR, year);
 cal.set(GregorianCalendar.MONTH, monthOfYear);
 cal.set(GregorianCalendar.DAY_OF_MONTH, dayOfMonth);

并存储为毫秒

cal.getTimeInMillis();