1

この文字列を次の日付形式に変換したいと思います。

  String s = "2-26-2013";
  Date date = new SimpleDateFormat("EEEE, MMMM/dd/yyyy").parse(s);
  System.out.println(date);

このエラーが発生します:

Exception in thread "main" java.text.ParseException: Unparseable date: "2-26-2013"
    at java.text.DateFormat.parse(DateFormat.java:357)
4

3 に答える 3

4

はい、そうです。のコンストラクターに渡す引数はSimpleDateFormat、日付が含まれると予想される形式を示します。

"EEEE, MMMM/dd/yyyy"「2013年2月26日火曜日」のような入力に有効です。「2-26-2013」では少しでも有効ではありません。書式設定ではなく、現時点でテキストを解析していることを理解していますか?

「M-dd-yyyy」または「Md-yyyy」のフォーマット文字列が必要なようです。

ある形式から別の形式に変換しようとしている場合は、最初に解析する形式を指定してから、次の形式でフォーマットする形式を指定する必要があります。

SimpleDateFormat parser = new SimpleDateFormat("M-dd-yyyy");
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMMM/dd/yyyy");
Date date = parser.parse(input);
String output = formatter.format(date);
于 2013-02-26T09:44:45.223 に答える
0
Date date = new SimpleDateFormat("MM-dd-yyyy").parse(s);

SimpleDateFormatの引数は、日付の形式を定義します。上記の行は形式と一致し、機能します。あなたの例は一致しません。

于 2013-02-26T09:48:13.367 に答える
0

使用する代わりに、を使用MMMM/dd/yyyyする必要がありますMM-dd-yyyy。SimpleDateFormatは、パターンが解析しようとしているものと一致することを期待しています。

于 2013-02-26T09:48:31.550 に答える