3

私は日付文字列を持っています:

Thu Feb 20 08:00:00 EET 1992

そして、このコードを使用してフォーマットします。

String datePatternFrom = "EEE MMM dd HH:mm:ss ZZZ yyyy";
String datePatternTo = "MMM dd, yyyy";
String prettyDate = "";

try {
    DateFormat fromFormatter = new SimpleDateFormat(datePatternFrom);
    Date date = (Date)fromFormatter.parse(userBirthday.toString());

    DateFormat toFormatter = new SimpleDateFormat(datePatternTo);
    prettyDate = toFormatter.format(date);

} catch (ParseException e) {
    e.printStackTrace();
}

なぜ例外が発生するのですか?

java.text.ParseException: Unparseable date: "Thu Feb 20 08:00:00 EET 1992" (at offset 0)
4

3 に答える 3

3

問題は、曜日と月、およびロケールにあります。 Thuは英語なので、平日は英語を使用するようにパーサーに指示する必要があります。

DateFormat fromFormatter = new SimpleDateFormat(datePatternFrom, Locale.US);

これはあなたのパターンで機能します。ロケールを指定しない場合、デフォルトが使用されますが、これは必ずしも英語のものではありません。;-)

于 2012-10-23T08:22:18.173 に答える
0

おそらく、userBirthdayオブジェクトはjava.util.Dateオブジェクトとして作成されていません。やってみSystem.out.println(userBirthday.getClass().getName());ませんか?

于 2012-10-23T07:49:33.413 に答える
0

それはあなたのロケールかもしれません。datePatternFromを使用してSDFを作成し、フォーマットしてどこかに印刷する日付を指定してみてください。ポップアップするものを確認してください。

于 2012-10-23T07:58:08.067 に答える