1

SimpleDateFormatを使用していますが、次のようになっParseExceptionています。

java.text.ParseException: Unparseable date: "Mon Jul 02 21:56:10 AST 2012"

私が持っているコードは

    String dateStr = "Mon Jul 02 21:56:10 AST 2012";
    DateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy ");

    DateFormat writeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = null;
    try {
        date = readFormat.parse(dateStr);
    } catch (ParseException e) {
        System.out.println("Error in parsing date ********");
    }

    String formattedDate = "";
    if (date != null) {
        formattedDate = writeFormat.format(date);
    }
    System.out.println("Formatted date is " + formattedDate);

私がどこで間違っているのか考えていますか?

アップデート1

私も試してみました

DateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy ");
                                                                  ^

しかし、それでも同じ例外です。

4

2 に答える 2

4

日付形式で英語ロケールの記号を使用するように指定するとすぐに、コードは機能します(zではなく)。Z

SimpleDateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
readFormat.setDateFormatSymbols(DateFormatSymbols.getInstance(Locale.ENGLISH));

eranによると、yyyyの後に余分なスペースもありますyyyy ")。その余分なスペースを削除します。

于 2012-07-02T19:34:12.510 に答える
0

フォーマットコードZは、のようなタイムゾーンオフセット用ですが-0800、フォーマットコードzは、SimpleDateFormatで説明されているように、PSTまたはなどの記述されたフォーマット用です。解析パターンに意図した大文字小文字が含まれていることを再確認してください。CST

于 2012-07-02T19:25:00.487 に答える