0

このコードで問題が発生するのはなぜですか?

public Date setupDate(){
        String startDateString ="05/10/2010 04:30:20";
        SimpleDateFormat df = new SimpleDateFormat("mm/dd/yyyy HH:mm:ss");
        Date startDate = null;
        try {
            startDate = df.parse(startDateString);
            String newDateString = df.format(startDate);
            System.err.println(newDateString);
            System.err.println(startDate.toString());
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return startDate;
    }

出力:

SEVERE:   30/10/2010 04:30:20
SEVERE:   Sun Jan 10 04:30:20 EST 2010

もちろん、1 月ではなく 5 月 10 日を予想していました (どのようにして 1 月になったのか、30 日になったのかはわかりません。

4

2 に答える 2

3

日付と時刻のパターンのセクションを読む

使用する必要があります

SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

Mは月を表し、mは分を表します

于 2013-10-23T18:05:03.293 に答える
1

月の書式記号は大文字を使用しMます。分mを 2 回使用しましたが、30ここにあります。参考までに、 のすべての形式記号を説明する Javadoc をSimpleDateFormat次に示します。

于 2013-10-23T18:05:09.077 に答える