Это было мое окончательное решение.
Обратите внимание, что это хак, который заставляет SQLite переформатировать дату получения. Лучшим решением было бы сохранить дату и извлечь ее самостоятельно.
Есть поля для ключей поиска:
public static final String KEY_TIMESTAMP = "timestamp";
public static final String KEY_DATESTAMP =
"strftime('%d/%m/%Y'," + KEY_TIMESTAMP +")";
Сохраните отметку времени как обычно в записи базы данных:
String timeStamp = new Timestamp(
Calendar.getInstance().getTimeInMillis() ).toString();
ContentValues initialValues = new ContentValues();
...
initialValues.put(KEY_TIMESTAMP, timeStamp);
return mDb.insert(DATABASE_TABLE, null, initialValues);
Где mDb - объект SQLiteDatabase.
При получении метки времени в формате yyyy-MM-dd HH:mm:ss.SSS
используйте обычный KEY_TIMESTAMP
.
Следующий метод извлекает строку с обоими элементами. Используйте соответствующий ключ для поиска.
public Cursor fetchItem(long rowId) throws SQLException {
Cursor cursor =
mDb.query(true, DATABASE_TABLE,
new String[] {KEY_ITEMID,KEY_TIMESTAMP,KEY_DATESTAMP},
KEY_ITEMID + "=" + rowId,
null, null, null, null, null
);
return cursor;
}
Используйте соответствующий ключ для поиска
mTimestamp = quote.getString(
quote.getColumnIndex(QuotesDbAdapter.KEY_TIMESTAMP)));
mDatestamp = quote.getString(
quote.getColumnIndex(QuotesDbAdapter.KEY_DATESTAMP)));