Я работаю с Android + SQLite и DatePicker Widget.
DatePicker не форматируется правильно для моих команд вставки SQLite. Т.е., если выбранная дата имеет месяц или день меньше 10, она не вставляет 0. Например, если я выберу дату «1 января 2010 года», формат месяца и даты будет 1 и 1. Это противоречит обычному формату SQL YYYY-MM-DD.
Я попытался объединить 0 в целые числа, когда их меньше 10, приведя их к строкам и добавив префикс o, выполнив следующее:
// 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();
}
Я ожидал, что это преобразует 2010-1-1 в 2010-01-01. Это не так, хотя. У кого-нибудь есть более простой способ сделать это, чтобы я мог получить дату в правильном формате перед отправкой ее в таблицу sqlite?
Заранее спасибо.