日付は2008-12-23T00:00:00Z
の形式です。これは、Zulu(UTC)タイムゾーンの ISO 8601形式 によく似ています。次のコードはそれを解析しますが( commons-lang を使用):
String pattern = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.getPattern();
Date d = DateUtils.parseDate(dateToParse, new String[] { pattern });
同じパターン(yyyy-MM-dd'T'HH:mm:ssZZ
)を使用してタイムゾーンを削除すると、機能します。
Zuluのタイムゾーンをどのように認識できるか知っていますか?私はJava 1.4とJakartacommons-langにしかアクセスできません。いいえ Joda Time 私にとってはまだ...
Commons-langのFastDateFormat
のバグのようです。それについて彼らに話してください、そしてあなたは最終的に修正を得るはずです。それまでは、日付を前処理して「Z」を「+00」に置き換えることができます。
Commons-langは、Javaの組み込みのDateFormatまたはSimpleDateFormatを使用しており、日付に対してParseExceptionをスローしていると思います。すべての入力文字列が末尾のZで終わる場合は、次のように使用できます。
Java.text.DateFormat df = new Java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
// explicitly set timezone of input if needed
df.setTimeZone(Java.util.TimeZone.getTimeZone("Zulu"));
Java.util.Date date = df.parse("2008-12-23T00:00:00Z");