使用SQLite时Android DatePicker"0"的问题

bru*_*rux 0 java sqlite android datepicker

我正在使用android + SQLite和DatePicker Widget.

对于我的SQLite插入命令,DatePicker没有正确格式化.即,如果所选日期的月份或日期小于10,则不会插入0.例如,如果我选择日期"2010年1月1日",则月份和日期的格式为1和1.这与YYYY-MM-DD的常用SQL格式冲突.

我试图通过将它们转换为字符串并通过执行以下操作为o添加前缀来将0变为小于10的整数.

 // the callback received when the user "sets" the date in the dialog
private DatePickerDialog.OnDateSetListener mDateSetListener =
        new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int year, 
                                  int monthOfYear, int dayOfMonth) {
                if(monthOfYear < 10)
                {
                    String mm = Integer.toString(monthOfYear);
                    String m = "0" + mm;
                    mMonth = Integer.parseInt(m);
                }
                else{mMonth = monthOfYear;}


                if (dayOfMonth <10)
                {
                    String dd = Integer.toString(dayOfMonth);
                    String d = "0" + dd;
                    dayOfMonth = Integer.parseInt(d);
                }
                else{mDay = dayOfMonth;}

                mYear = year;

                updateDisplay();
            }
        };


 // updates the date in the TextView
private void updateDisplay() {
    mDateDisplay.setText(
        new StringBuilder()
                // Month is 0 based so add 1
                .append(mYear).append("-")
                .append(mMonth + 1).append("-")
                .append(mDay).append("")
                );

    selecteddate = (String) mDateDisplay.getText();

}
Run Code Online (Sandbox Code Playgroud)

我期待着将2010-1-1转换为2010-01-01.它不是.有没有人有更简单的方法这样做,以便我可以在将日期发送到sqlite表之前将其变为正确的格式?

提前致谢.

Juh*_*ani 5

您可以使用更短的代码执行相同的操作.

new StringBuilder()
            // Month is 0 based so add 1
            .append(mYear).append("-")
            .append(mMonth<10?"0"+(mMonth+1):mMonth + 1).append("-")
            .append(mDay<10?"0"+mDay:mDay).append("")
Run Code Online (Sandbox Code Playgroud)

否则我认为你无能为力.