未处理的异常类型ParseException

时间:2012-07-26 08:21:40

标签: android exception unhandled

我在我的应用中使用了这部分代码:

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

这是什么问题? 你需要我发布整个代码吗? Thnx提前!

3 个答案:

答案 0 :(得分:9)

见下面的代码

        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();
        }

答案 1 :(得分:1)

java.time

该是展示现代方法的时候了。使用现代的Java日期和时间API java.time。

    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的最常见变体解析为默认值,即没有任何显式格式化程序。

如果字符串不是UTC中的有效ISO 8601日期和时间,则异常起作用。例如:

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

java.time.format.DateTimeParseException:无法在索引0处解析文本“无效的日期时间”

SimpleDateFormatDate类的设计很差,而且已经过时,尤其是前者非常麻烦。我建议没有人再使用它们。现代化的API更好用。

链接

答案 2 :(得分:0)

Calendar c = Calendar.getInstance();

SimpleDateFormat df = new SimpleDateFormat("DD-MM-YYYY");

String Currentdatestr = df.format(c.getTime());

//get current date in String

Date date = df.parse(Currentdatestr);

//String to parse Date Format