これに関していくつかの質問があることは承知しています。しかし、特定の日付パターンに問題があります。次に例を示します。
20130401100000[-03:EST]
-03
ドキュメントによると、SimpleDateFormat
4桁である必要があるため、問題が発生しています。私がそれに最も近いパターンはこれでした:
yyyyMMddHHmmss'['Z':'z']'
しかし、2桁なので、うまくいきません。テストに使用しているコードサンプルは次のとおりです。
public static void main(String[] args) throws ParseException {
String input = "20130401100000[-03:EST]";
DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss'['Z':'z']'");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(df.format(new Date()));
System.out.println(df.parse(input));
}
を印刷すると、次のnew Date()
ようになります。
20130528155734[+0000:GMT]
しかし、解析しようとするとinput
、次の例外が発生します。
Exception in thread "main" java.text.ParseException: Unparseable date: "20130401100000[-03:EST]"
at java.text.DateFormat.parse(DateFormat.java:337)
at Teste.main(Teste.java:17)