У меня странная проблема при разборе даты и времени ISO8601 с помощью SimpleDateFormat. Соответствующий код:
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
И в качестве возврата я получаю объект Date с датой, установленной на 6 января 2010 года, временем 13:30 и часовым поясом GMT + 00: 00.
РЕДАКТИРОВАТЬ: Я также пробовал использовать «2010-09-06T15: 30: 00 + 0200» с теми же результатами.
Непонятно то, что дата установлена частично правильно, просто месяц установлен неправильно.
Проблема проявляется в Android 1.6 и Android 2.2.
Как ее исправить?