1

YYYY-MM-DD HH:mm:ss の形式で日付を解析しようとしています

String now = "2012-11-02 12:02:00";
DateFormat formatter;
formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date date_temp = (Date) formatter.parse(now.toString());
System.out.println("output: " + date_temp);

それは私に次の例外を与えます

java.text.ParseException: Unparseable date: "2012-11-02 12:02:00"
4

2 に答える 2

8

はい、1 つの形式 ("EEE MMM dd HH:mm:ss z yyyy") でフォーマットされた を作成し、解析するためにまったく異なる形式の文字列を指定しました。なぜそれがうまくいくと思ったのですか?これを試して:

// Locale specified to avoid any cultural differences. You may also
// want to specify the time zone.
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
                                            Locale.US);
Date date = formatter.parse(now);

parsed はフォーマットについて何も知らないことに注意してくださいDate-呼び出しの結果toString()(ここで暗黙的に行っているように) は常に、JRE のデフォルト タイム ゾーンのデフォルト フォーマットです。特定の形式で印刷したい場合は、SimpleDateFormat再度ご利用ください。

また、変数の宣言と初期化を組み合わせたことにも注意してください。変数を 1 行で宣言し、後で初期値を指定するよりも優先してください。

于 2012-11-11T17:58:03.423 に答える
2

もちろん、あなたdate stringformatあなたが使っているのではありませんSimpleDateFormat。したがって、それを に解析することはできませんdate object

これを使ってみてください: -

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
于 2012-11-11T17:58:27.070 に答える