Вариант 1. Как сказал @nguyendat, для повышения производительности вы можете хранить отформатированную дату в базе данных, а также неформатированную версию, чтобы обеспечить максимальную гибкость.Однако, если в той же таблице это нарушит 2-ую нормальную форму из-за избыточности, и вы должны быть осторожны в своем коде, чтобы обновить все данные в строке.Чтобы реализовать это, поместите код конвертации в DBAdapter в команде вставки.
Вариант 2. Создайте класс для вашей даты
public class FormattedDate {
private int oneDate;
public Punch (int unformattedDate) {
oneDate = unformattedDate;
} // ends constructor
@Override
public String toString() {
//put your conversion code here
return myFormattedDate;
}}
Это дает дополнительное преимущество в правильном местепоместить любой другой код для сравнения или преобразования.
Внутри вашего DBAdapter измените ваш запрос на этот
public ArrayList<FormattedDate> fetchAllItems() {
ArrayList<FormattedDate> results = new ArrayList<FormattedDate>();
Cursor c = db.rawQuery("SELECT MY_UNFORMATTED_DATE FROM yourTable", null);
if (c.getCount() > 0) {
c.moveToFirst();
do {
results.add( new FormattedDate(c.getInt(c.getColumnIndex(MY_UNFORMATTED_DATE))));
} while (c.moveToNext());
}
c.close();
return results;
}
Это возвращает ArrayList объектов FormattedDate
Наконец, этобудет заполнять список
setContentView(R.layout.my_list_view);
ArrayList<FormattedDate> dateArray = mDBHelper.fetchAllItens();
ArrayAdapter<FormattedDate> dateAdapter = new ArrayAdapter<FormattedDate> (getApplicationContext(), R.layout.list_item, dateArray);
setListAdapter(dateAdapter);