2016-09-01 16 views
-3

日付ピッカーを更新するためにMMMの日付をdd/mm/yyyyの形式に変換しようとしていますが、私は、次のように解析方法でエラーが出ます:日付をMMM、dd yyyyをAndroidのdd/MM/yyyyに変換できません

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

解析は推奨されていませんか? – 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が9月の値を持っていても、2016は結果としてnullになります –

+0

申し訳ありません、 "Sep、1 2016"でチェックしています。 更新されたコードスニペットを確認してください – ViramP

+0

カンマが間違った場所にあると混乱しましたが、それはmmm、dd yyyyだと思っていましたが、mmm dd、yyyyありがとうございました! –

0

に感謝あなたが最初SimpleDateFormatter(SDF)を使用して文字列を解析する必要が好きで、これは日付に文字列を解析し、その後、あなたの他のSDFはにその日付をオンにする

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

を使用し、次のあなたが望むフォーマット。

+0

あなたが答える前に質問をお読みください!ありがとうございました –

+0

私はそれを助けることができない答えを理解するのに十分な熟練がなければ私はしました。 –

+0

私はすべて同じことを言うことです!あなたは私の質問で実際に答えます –

関連する問題