2011-06-30 18 views
1

私は日付の文字列を解析しようとしています。私はSimpleDateFormatクラスを使用してJavaのWebサイトから抜け出しましたが、何かがうまくいかず、理由がわかりません。Java SimpleDateFormatの解析の問題

日付文字列は、次の構文で来る:

"13:37 - Tue 28-Jun-2011" 

だから私は、次のことをやってみました:

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy"); 
ParsePosition pos = new ParsePosition(0); 
Date d = dateFormat.parse("13:37 - Tue 28-Jun-2011", pos); 

私が前に言ったように、これは動作しません。私は

System.out.println(pos.getErrorIndex()); 

を印刷するとき、それは私が想定している、「8」を出力し、エラーがどこかEEE部分の周りにあることを意味しています。私は異なる順列を試みたが、何も働かなかった。私は間違って何をしていますか?

おかげ

bompf

+1

あなたはそれが動作しないと言うとき、それはどのようなエラーを表示しますか? – aldrin

+0

実際にこのロケールをこの問題の解決策として掲示して、あなた自身の答えを受け入れることができますか?それは私たちの残りの部分を助けるだろう。 – ZeroOne

+0

私はあなたが尋ねたようにしました。 – bompf

答えて

0

私は問題を発見:私はしませんでした日付形式のロケールを設定する必要があることを知っています。

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy", Locale.ENGLISH); 

これが今すぐ機能します!

2

あなたはこれが動作する日付を解析しようとした場合。私はそれが私のために正常に動作しますが、ParsePosition

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy"); 
    Date d = dateFormat.parse("13:37 - Tue 28-Jun-2011"); 
    System.out.println(d); 
2

でやろうとしているか知らない...

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm - EEE dd-MMM-yyyy"); 
ParsePosition pos = new ParsePosition(0); 
Date d = dateFormat.parse("13:37 - Tue 28-Jun-2011", pos); 

System.out.println(pos.getErrorIndex()); 
System.out.println(d); 

が出力 -

-1 
Tue Jun 28 13:37:00 EDT 2011