Непонятная дата по смещению 25

У меня проблемы с решением проблемы. Я пытаюсь разобрать строку даты 2013-05-23T19:00:00GMT-00 в стандартный формат, который yyyy-MM-dd'T'HH:mm:ssz но я всегда получаю ParseException в позиции 25.

    // Get a human readable format.
    DateFormat dateFormat = DateTime.getStandardFormat();

    // Subtract a full hour from the time passed in.
    final int HOUR_IN_MINUTES = 3600;
    DateTime dateTimeLess1Hour = aDateTime.minus(HOUR_IN_MINUTES, 0);

    // Convert the DateTime, less exactly one hour, to a string.
    String timeLess1String = dateFormat.format(DateTime.toDate(dateTimeLess1Hour));

    // Split the string to distinguish the time part
    String date = timeLess1String.substring(0, 10);
    String time = timeLess1String.substring(11);

    String[] hhMMss = time.split(":");

    String hourOnHourDate = date + "T" + hhMMss[0] + ":00:00" + hhMMss[2].substring(2);

    Date inDateFormat = null;

    // Convert the string into a Date object
    inDateFormat = dateFormat.parse(hourOnHourDate);

    // Convert the Date into a DateTime object.
    return new DateTime(inDateFormat);

В сообщении об ошибке указана дата Unparseable: 2013-05-23T19:00:00GMT-00

1 ответ

Позиция 25 указывает на начало GMT часть, которую вы пытаетесь разобрать, используя букву z, Если вы уверены, что ваш часовой пояс всегда будет GMTзатем вы можете поместить его как фиксированную строку следующим образом:

yyyy-MM-dd'T'HH:mm:ss'GMT'

Если входной часовой пояс будет время от времени отличаться, разделите его.

String zone = inputTime.substring(startPosition, endPosition);

И установите часовой пояс в отдельной строке, используя zone строка

Другие вопросы по тегам