Непонятная дата по смещению 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
строка