SimpleDateFormatを使用してISO8601の日付と時刻を解析するときに、奇妙な問題が発生します。関連するコードは次のとおりです。
public class DateHelper
{
private static SimpleDateFormat iso8601formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
public static Date parseISO8601(String date) throws ParseException
{
Date result = iso8601formatter.parse(date);
return result;
}
}
入力のために私はそれに文字列を与えています
2010-09-06T15:30:00+02:00
そして、戻り値として、日付が2010年1月6日に設定され、時刻が13:30、タイムゾーンがGMT + 00:00のDateオブジェクトを取得します。
編集:私も「2010-09-06T15:30:00 + 0200」を使用してみましたが、同じ結果になりました。
紛らわしいのは、設定された日付が部分的に正しいこと、月だけが間違って設定されていることです。
この問題はAndroid1.6とAndroid2.2で発生します。
どうすれば修正できますか?