格式化日期字符串时是否存在IllegalArgumentException?

时间:2012-12-10 16:31:17

标签: android date-format simpledateformat illegalargumentexception

日期字符串来自我的应用程序的XML Feed,格式如此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

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

2 个答案:

答案 0 :(得分:1)

df.format(time);

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

查看文档here

答案 1 :(得分: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