在我的 Android 应用程序中,我试图根据日期从我的数据库中检索一个字符串。但我不想要日期中的年份(那样我只需要 365 行)。我让它工作的唯一方法是在我的数据库中,让日期列中的日期采用 yyyyMMdd 格式。如果我将“日期”列中的所有日期更改为 MMdd 格式,则两位数月份(如 10 月、11 月、12 月)有效,但单位数月份如 1 月或 9 月(01、09)会使应用程序崩溃与错误CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
。我已经在数据库中尝试了 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]);
}
数据库适配器:
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;
}