17

形式の日付があります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) を使用してタイムゾーンを削除すると、機能します。

ズールー語のタイムゾーンを認識する方法を知っていますか? Java 1.4 と Jakarta commons-lang にしかアクセスできません。Joda 時間はまだありません...

4

2 に答える 2

48

commons-lang は、日付に対して ParseException をスローする Java の組み込みの DateFormat または SimpleDateFormat を使用していると思います。すべての入力文字列が末尾の 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");

于 2009-01-08T15:31:50.043 に答える
4

commons-lang のバグのようFastDateFormatです。それについて彼らに伝えてください。最終的には修正が得られるはずです。それまでは、日付を前処理して「Z」を「+00」に置き換えることができます

于 2009-01-08T15:06:39.923 に答える