6

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

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

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

4

3 回答 3

16

见下面的代码

        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();
        }
于 2012-07-26T08:27:41.970 回答
0

java.time

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

    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 使用起来要好得多。

链接

于 2020-07-24T11:07:45.703 回答
-1
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
于 2019-05-30T11:10:51.837 回答