0

日期字符串来自我的应用程序的 XML 提要,格式如下Mon, 10 Dec 2012 13:18:23 GMT,我想格式化为“13:18:23”。我有这个方法

private String formatTime(String time) {
    DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss zzz", Locale.getDefault());

    String temp = null;

    try {

        temp = df.format(time);

    } catch (IllegalArgumentException e) {
         e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

    return temp;
}

但我不断收到错误IllegalArgumentException

任何人都可以看到这段代码正在发生的事情吗?

4

2 回答 2

1
df.format(time);

您将 String 传递给 format() 方法,而它需要 Date 对象。

在此处查看文档

于 2012-12-10T16:39:02.173 回答
1
    String tmp = "Mon, 10 Dec 2012 13:18:23 GMT";
    String DATE_FORMAT = "EEE, dd MMM yyyy kk:mm:ss zzz";
    String DATE_FORMAT_NOW = "kk:mm:ss";

    SimpleDateFormat sdfSource = new SimpleDateFormat(DATE_FORMAT);
    Date date = sdfSource.parse(tmp);


    SimpleDateFormat sdfDestination = new SimpleDateFormat(DATE_FORMAT_NOW);

    tmp = sdfDestination.format(date);


    System.out.println("Converted date is : " + tmp);

输出

Converted date is : 15:18:23

由于格林威治标准时间,您有 +2 小时的差异。zzz从中删除DATE_FORMAT,您将获得:

13:18:23

于 2012-12-10T16:40:18.703 回答