2017-01-25 11 views
0

私が使用しているfuncitonは、この機能が正常に動作しているが、日付を解析しながら、デバイスの一つで例外が発生している多くのデバイスでアンドロイドを解析できません予定日:2017年1月6日

public static String getFormatedDate(String dateVal) { 
    String tempDate = null; 
    Locale systemLocale = Locale.getDefault(); 

    try { 
     SimpleDateFormat formatter = new SimpleDateFormat("MMM dd, yyyy", 
       systemLocale); 
     Date date = (Date) formatter.parse(dateVal); 
     SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
     tempDate = sdf.format(date); 

    } catch (Exception e) { 
     ApplicationLog.log(TAG, e); 
    } 

    return tempDate; 
} 

です。この例外はLocale.getDefault()と関係がありますか?はいの場合はどうすればいいですか?ありがとう。

Utilities.getFormatedDate(date); 

関数を呼び出し、例外が...

Utilities:java.text.ParseException: Unparseable date: "Jan 06, 2017" (at offset 0) 
at java.text.DateFormat.parse(DateFormat.java:579) 
+0

スタックトレース全体をポストできますか? –

+0

また、このメソッドを呼び出す場所でコードを共有できますか? –

+0

はい、あなたは正しいです。ロケールを渡さないでください。 –

答えて

0

あなたはロケールに依存する形式"MMM dd, yyyy"から日付を解析しようとすると、システムのロケールを設定していますさ。あなたのフォーマットに合ったロケールを渡してみてください。例えば、Locale.US。このような方法を変更する

public static String getFormatedDate(String dateVal) { 
    String tempDate = null; 

    try { 
     SimpleDateFormat formatter = new SimpleDateFormat("MMM dd, yyyy", 
       Locale.US); 
     Date date = (Date) formatter.parse(dateVal); 
     SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
     tempDate = sdf.format(date); 

    } catch (Exception e) { 
     ApplicationLog.log(TAG, e); 
    } 

    return tempDate; 
} 
関連する問題