2011-11-16 38 views
8

私は次のコードでjava.text.ParseException: Unparseable dateを取得していますなぜ誰も教えてくださいでした:java.text.ParseException:解析できない日付:

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.util.Locale; 


public class Testdate { 
    public static void main(String args[]) 
    { 
     String text = "2011-11-19T00:00:00.000-05:00"; 
     DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 
     try { 
      Date parsed = sdf.parse(text.trim()); 
      System.out.println(parsed); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
    } 

} 

答えて

9

そのため、あなたのタイムゾーンでのコロンの。それを削除すると、それは動作します:

String text = "2011-11-19T00:00:00.000-0500"; 
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 
+0

あなたは別のStringを使用しましたが、実際のStringは "2011-11-19T00:00:00.000-05:00"です。私も結腸が欲しい – Pawan

+0

なぜそれが失敗するのか、それを回避する方法の1つだけの説明でした。 – Chris

+0

私はRFCを遵守していない日付を取得する理由を調査します。最後のコロンを削除するだけで回避できますが、これは明らかに悪い回避策です。 – Chris

5

ためとのオフセットを処理しないSimpleDateFormatのパターンサポートのZ一部

代わりにJoda Timeを使用し、ISODateFormat.dateTime()を使用して適切なフォーマッタを使用することをお勧めします。

(詳細については、今日、以前からこのsimilar-but-not-quite-the-same-questionを参照してください。)

関連する問題