Странные результаты анализа даты и времени с помощью SimpleDateFormat

У меня странная проблема при разборе даты и времени 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.

Как ее исправить?

5
задан user85421 30 January 2017 в 18:27
поделиться