Android アプリで、日付に基づいてデータベースから文字列を取得しようとしています。しかし、私は日付に年を入れたくありません (そうすれば、365 行しか必要ありません)。私がそれを機能させる唯一の方法は、DB で、Date 列の日付を yyyyMMdd の形式にすることです。Date 列のすべての日付を MMdd 形式に変更すると、2 桁の月 (10 月、11 月、12 月など) は機能しますが、1 月や 9 月 (01、09) などの 1 桁の月ではアプリがクラッシュします。エラーでCursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
。DB で MM-dd、yyyy-MM-dd の形式を試しましたが、上記のエラーでアプリがクラッシュします。Sqlite データベースで MMdd だけで日付をフォーマットすることはできませんか? 何か案は?
主な活動:
DBT = new SimpleDateFormat("MMdd", Locale.US);
tMMddStr = DBT.format(new Date(System.currentTimeMillis()));
private void getTH() {
dba.open();
tArray = dba.getTHA(tMMddStr);
dba.close();
optionB_TV.setText(todayArray[2]);
hideDayAtv.setText(todayArray[1]);
hideYearAtv.setText(todayArray[0]);
}
DBアダプタ:
public String[] getTHA(String tMMddStr) {
String[] columns = new String[] { KEY_Y, KEY_MD, KEY_HA };
Cursor cursor = db.query(DB_TABLE, columns, KEY_DATE + "=" + tMMddStr,
null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
String hapT[] = new String[3];
hapT[0] = cursor.getString(0);
hapT[1] = cursor.getString(1);
hapT[2] = cursor.getString(2);
cursor.close();
this.db.close();
return hapT;
}
return null;
}