С помощью этого запроса я выбираю месяц в базе данных. Курсор вернет точный месяц, но когда я сделаю преобразование, чтобы отобразить полное имя, появится следующий месяц. Например, курсор возвращает 6, вместо этого метод возвращает getDisplayName July.Ошибка Android при преобразовании имени месяца
SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase();
String sql = "SELECT DISTINCT strftime('%m',"+Table.DATA+") FROM "+Table.TABLE_NAME;
Cursor c = db.rawQuery(sql, null);
while (c.moveToNext()){
int monthNumero = (c.getInt(0));
Calendar ca = Calendar.getInstance();
ca.set(Calendar.MONTH, monthNumero);
String monthName = ca.getDisplayName
(Calendar.MONTH, Calendar.LONG, Locale.getDefault()).toUpperCase();
result1.add(monthName);
}
db.close();
нормально, Но теперь Я вижу, что имя месяца в spinner, и мне нужно преобразовать в целое число, чтобы сделать другой запрос. Я делаю это: 'String mese = monthSelector.getSelectedItem(). ToString(); \t \t Календарь cal = Calendar.getInstance(); \t \t try { \t \t cal.setTime (новый SimpleDateFormat ("MMMM"). Parse (mese)); \t \t} задвижка (ParseException е) {\t \t \t \t \t \t e.printStackTrace(); \t \t} \t \t int monthInt = cal.get (Calendar.MONTH + 1); \t \t Строковый месяцConverted = "" + monthInt; \t \t if (monthInt <10) { \t \t monthConverted = "0" + monthConverted; \t \t} ' но я получаю месяц как номер 23! Зачем? – user2847219
@ user2847219: Потому что вы хотите 'cal.get (Calendar.MONTH) + 1', а не' cal.get (Calendar.MONTH + 1) '- вы в настоящее время получаете совсем другое поле! –
Вы правы. благодаря – user2847219