Q:

Convert SimpleDateFormat

Добрый день помогите разобраться в конвертации календаря, когда конвертирую календарь и текущее время он возвращает на день больше, а месяц и год все правильно?

Вот код который использую для конвертации даты, месяца и года:
GregorianCalendar cse =  new GregorianCalendar();
cse.setTimeInMillis(Long.parseLong(cursor.getString(cursor.getColumnIndex(KEY_PUBDATE)))); // дата новости
cse.add(Calendar.DAY_OF_MONTH, 1);
SimpleDateFormat fmt = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss Z", Locale.ENGLISH);
String dateString = fmt.format(cse.getTime());
Log.d("DMC6", "dateString  " + dateString );
holder.textPubData.setText(dateString);

A:

У вас в коде есть строчка:
cse.add(Calendar.DAY_OF_MONTH, 1);

Если посмотреть в документацию:

Adds the specified (signed) amount of time to the given calendar
  field, based on the calendar's rules.

Т.е. ваш код сам добавляет к значению один день, который вам и мешает.

