Невозможно проанализировать строку с помощью анализатора даты Java

Я анализировал строку даты и времени, используя это: http://developer.android.com/reference/java/text/SimpleDateFormat.html, но почему-то я получал ошибку времени выполнения при синтаксическом анализе: https://ideone.com/gpFqwp

Может ли кто-нибудь указать мне на мою ошибку здесь?

static String date = "2015-09-17T08:22:49Z";
public static DateFormat inputDatetimeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
public static DateFormat displayDateFormat = DateFormat.getDateTimeInstance();

public static void main (String[] args) throws java.lang.Exception
{
    System.out.println(displayDateFormat.format(inputDatetimeFormatter.parse(date)));
}

person solution    schedule 17.09.2015    source источник
comment
stackoverflow.com/questions/20168647/   -  person Reimeus    schedule 17.09.2015
comment
Спасибо. Интересно, почему это не упоминается в официальном документе.   -  person solution    schedule 17.09.2015


Ответы (2)


DateFormat inputDatetimeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX");

См. javadoc для SimpleDateFormat в Java 7

или использовать

 DateFormat inputDatetimeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

См. javadoc для SimpleDateFormat в Java 6

вот пример

person karim mohsen    schedule 17.09.2015

Измените inputDatetimeFormatter на new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");. Тогда пойдет нормально.

РЕДАКТИРОВАТЬ: Какова цель Z в конце вашей строки date? Это просто письмо, которое вы всегда хотите быть там?

Тогда вам придется изменить inputDatetimeFormatter на указанное выше. Если целью Z является часовой пояс, ваша строка date неверна (должна содержать не Z, а часовой пояс, например, -0800).

Тогда это даст:

static String date = "2015-09-17T08:22:49-0800"; // Replace -0800 by wanted time zone
public static DateFormat inputDatetimeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); // Now you can use Z (instead of 'Z') to indicate that the time zone is following
person Kevin    schedule 17.09.2015