2016-06-01 10 views
0

私は日付形式が一致しません。解析できない例外

"2016年5月26日"

"01-6月 - 2016年7時54 AM"

を変更したいですここに私のコードです

DateFormat df = new SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH); 
DateFormat existinFormat= new SimpleDateFormat("dd-MMM-yyyy HH:mm aa " , Locale 
      .ENGLISH); 
Calendar c = Calendar.getInstance(); 
String newDateString = ""; 
Date startDate = null; 
try { 
    startDate = existinFormat.parse((date)); 
    newDateString = df.format(startDate); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

が、その解析には、例外がスローされます:

java.text.ParseException: Unparseable date: "01-Jun-2016 07:54 AM" (at offset 20) 

いずれかが、この解決策を見つけた場合は私と一緒に共有してください。

あなたはこのように行うことができます
+1

'HH'は24時間を使用するため、' hh'を使用できますか? –

+1

2つの 'a'がありますが、1つだけが必要です。 – kazbeel

+0

@BarmanInfo答えを確認し、resultDateFormatを指定してください。 –

答えて

2

String dateStr = "01-Jun-2016 07:54 AM"; 
DateFormat existingformat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss aa"); 
DateFormat newformat = new SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH); 
Date date = null; 
try { 
    date = existingformat.parse(dateStr); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

if (date != null) { 
    String resultFormattedDate = newformat.format(date); 
    Log.d("resultFormattedDate"," is:"+resultFormattedDate); 
} 

、あなたはあなたに必要とされている日付フォーマットの種類を説明してくださいできますか?ここでは、あなたのコードを参照してresultDateFromatを "MMM dd、yyyy"のように説明しました。

+0

私は2016年6月1日のように表示したい – BarmanInfo

+0

の既存のフォーマットでは、aaの代わりにaを変更します。 – BarmanInfo

+0

@BarmanInfoあなたの質問は「日付フォーマットの不一致です。解析不可能な例外」が解決されました。だからあなたは私の答えを受け入れることができ、あなたの質問を強化することによって、[this reference link](http://stackoverflow.com/a/33540720/5059725)を使って "2016年1月6日"を達成することができます。このリンクはあなたの問題を解決します。 –

関連する問題