2016-04-13 9 views
1

jsonオブジェクトで受信した日付を必要な形式に変換する際に問題が発生しています。バックエンドから取得した日付はApr-13, Wednesday, 04:06:00 PMです。これは私がやったことです。Java dateFormat解析できない日付の例外

String refreshDateString = jobj.optString("refresh_date").toString(); 
SimpleDateFormat parseFormat = new SimpleDateFormat("MMM-dd, EEEE hh:mm:ss a"); 
Date refreshDate = parseFormat.parse(refreshDateString.replaceAll("\\p{Cntrl}", "")); 
SimpleDateFormat outputFormat = new SimpleDateFormat("MMM dd, E, hh:mm a"); 

また、EEEEの代わりに1つのEを使用しました。私が間違っている場所の入力はありますか?どうもありがとう!

答えて

0

また、JodaTimeライブラリ、またはJava 8(これは実際はJodaTimeのコピー&ペースト)に含まれるDate APIの最新バージョンを使用することをお勧めします。日付を扱うほうがずっと良いですから。あなたのコードでなどの日付の変換をたくさん持っているので、もし与えられた形式の文字列を解析するために

String string = "Apr-13, Wednesday, 04:06:00 PM"; 
DateTimeFormatter formatter = DateTimeFormat.forPattern("MMM-dd, E, hh:mm:ss a"); 
DateTime dt = formatter.parseDateTime(string); 

のように見えるが、それは念のためにそこに持っている必要がありますされます。

+0

この提案に感謝!それは有用です:) – user2604897

1

あなたは週の曜日名の後に,が欠落していると、あなたが週の曜日名の後に,を持っていけない場合は、この形式

DateFormat parseFormat = new SimpleDateFormat("MMM-dd, E, hh:mm:ss a"); 

を使用し、EEEEの代わりにEを使用する必要があります。 EEEEhhEEEE hh:mm:ssの間に余分なスペースがあります。これを代わりに使用してください

DateFormat parseFormat = new SimpleDateFormat("MMM-dd, E hh:mm:ss a"); 
+0

バックエンドからカンマを取得できません。申し訳ありません。これは見た目です Apr-13、水曜日04:06:00 – user2604897

+0

ありがとうございました!私はスペースを見過ごしたようだった:D – user2604897

0

パターンに余分なスペースとカンマがあります。私のマシンは、私が解析することができませんロケールなしで、イタリアにあるため、

SimpleDateFormat parseFormat = new SimpleDateFormat("MMM-dd, EEEE, hh:mm:ss a", Locale.US); 

を私の場合:お使いのシステムは、あなたが受けている日付とは異なる言語である場合は、1つ重要なことは、しかしロケールです与えられた日付。

関連する問題