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

文字列を 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

GMT のため、+2 時間の差があります。zzzから削除するDATE_FORMATと、次のようになります。

13:18:23

于 2012-12-10T16:40:18.703 に答える