2016-09-01 5 views
-3

Я пытаюсь преобразовать дату MMM, dd yyyy в формат dd/mm/yyyy, чтобы обновить выбор даты, но Я получаю сообщение об ошибке в методе синтаксического анализа на следующем:Невозможно преобразовать дату MMM, dd yyyy в dd/MM/yyyy в Android

SimpleDateFormat format = new SimpleDateFormat("MMM, dd yyyy"); 
Date newDate = format.**parse**(strCurrentDate); 

format = new SimpleDateFormat("dd/MM/yyyy"); 
String date = format.format(newDate); 

и

String str[] = date.split("/"); 
int myday = Integer.parseInt(str[0]); 
int mymonth = Integer.parseInt(str[1]); 
int myyear = Integer.parseInt(str[2]); 
dp.updateDate(myday,mymonth,myyear); 

Что я делаю неправильно здесь? Должен ли я заключить его с try/catch? спасибо

+0

Показать пример строки даты –

+2

parse не устарел? – Stefan

+0

Тогда почему я получаю java.text.ParseException? и как я могу это исправить? –

ответ

0

Это обязательно будет работать.

String inputPattern = "MMM, dd yyyy"; 
     String outputPattern = "dd/MM/yyyy"; 
     SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern, Locale.ENGLISH); 
     SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern,Locale.ENGLISH); 

     Date date = null; 
     String str = null; 

     try { 
      String strCurrentDate = "Sep, 1 2016"; 
      date = inputFormat.parse(strCurrentDate);// it's format should be same as inputPattern 
      str = outputFormat.format(date); 
      Log.e("Log ","str "+str); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } catch (java.text.ParseException e) { 
      e.printStackTrace(); 
     } 
+0

Исправлено исключение, но даже если strCurrentDate имеет значение Sep, 1 2016, я получаю null в результате –

+0

Извините, я проверил с «Sep, 1 2016», и он отлично работает. Проверьте обновленный код snippet – ViramP

+0

Запятая в неправильном месте сделала беспорядок Я думал, что это mmm, dd yyyy, но это было mmm dd, yyyy большое спасибо !!! за вашу инструкцию –

0

Вы должны сначала разобрать вашу строку, используя SimpleDateFormatter (SDF) нравится следующий

String strDate = "MM, dd yyyy"; 
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); 
Date dateStr = formatter.parse(strDate); 

Используйте это, чтобы разобрать строку в дату, а затем ваш другой SDF превратить эту дату в формат, который вы хотите.

+0

ПРОЧТИТЕ ВОПРОС, прежде чем ответить! спасибо –

+0

Я сделал, если вы недостаточно подготовлены, чтобы понять ответ, я не могу с этим поделать. –

+0

Я имею в виду то, что мы говорим то же самое !! вы отвечаете с моим вопросом на самом деле –