тип необработанного исключения ParseException

Я использую эту часть кода в своем приложении:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
Date qdate = new GregorianCalendar(0,0,0).getTime();
try {
    qdate = sdf.parse(dt);
} catch (ParseException e) {
    e.printStackTrace();
}

но Eclipse выдает ошибку:

Тип необработанного исключения ParseException

В чем проблема? Вам нужно, чтобы я опубликовал весь код? Спасибо заранее!


person Tasos Moustakas    schedule 26.07.2012    source источник
comment
Фрагмент кода отлично работает здесь. Попробуйте очистить и перестроить свой проект.   -  person Robert    schedule 26.07.2012
comment
Не сработало :( Странно то, что я написал эту часть кода в функции и работал нормально. Но когда я написал другую функцию ниже, произошла ошибка.. Это подсказка ??   -  person Tasos Moustakas    schedule 26.07.2012


Ответы (3)


См. ниже код

        String date = "Sat, 23 Jun 2012 00:00:00 +0000";
        try {
            SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
            SimpleDateFormat df2 = new SimpleDateFormat("dd/MM/yy");
            date = df2.format(date));
        } catch (java.text.ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
person Nirali    schedule 26.07.2012
comment
Да, это была проблема :) У меня был импортирован неправильный пакет :) Поэтому вместо этого я просто изменил импортированный пакет :) Спасибо за руководство !!! :) - person Tasos Moustakas; 26.07.2012
comment
Уже сделал .. Я пока не могу голосовать .. :) У меня всего 4 репутации, а для возможности голосовать требуется 15 реп :( - person Tasos Moustakas; 26.07.2012
comment
Взгляните на мой код и посмотрите, сможете ли вы мне помочь. SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = tvData.getText().toString() + " " + tvHora.getText().toString(); Date d = parser.parse(dateStr); valor.put("data", d.getTime()); - person baTimá; 11.10.2012

Java.время

Пришло время показать современный способ сделать это. Используйте java.time, современный API даты и времени Java.

    String dt = "2020-07-24T11:03:12Z";
    try {
        Instant i = Instant.parse(dt);
        System.out.println(i);
    } catch (DateTimeParseException dtpe) {
        System.err.println(dtpe);
    }

Выход:

2020-07-24T11:03:12Z

Я использую тот факт, что ваш формат - ISO 8601, а классы java.time анализируют наиболее распространенные варианты ISO 8601 по умолчанию, то есть без какого-либо явного форматирования.

Исключение возникает, если строка не является допустимой датой и временем ISO 8601 в формате UTC. Например:

    String dt = "Not a valid date-time";

java.time.format.DateTimeParseException: текст «Недопустимая дата-время» не может быть проанализирован по индексу 0

Классы SimpleDateFormat и Date плохо спроектированы и давно устарели, первый из них, как известно, доставляет много хлопот. Я рекомендую, чтобы никто не использовал их больше. С современным API гораздо приятнее работать.

Ссылки

person Ole V.V.    schedule 24.07.2020

person    schedule
comment
Неправильный. Сегодня 24 июля, и ваш код только что дал мне строку 206-07-2020 и Date из Mon Dec 30 00:00:00 CET 2019. Кроме того, Calendar, SimpleDateFormat и Date плохо спроектированы и устарели задолго до того, как этот ответ был опубликован в 2019 году. - person Ole V.V.; 24.07.2020