2

のような値の文字列を取得しString val = "2012-08-01T12:00"、次のコードを使用してそれからカレンダーの種類を作成します。問題は、08 ではなく 07 の月に取得したデータを印刷するときです。正確な月を取得するにはどうすればよいですか?

1-7-2012-12-0-0

    SimpleDateFormat parserSDF = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
                    Date date = null;               
                    date = parserSDF.parse(Val);
                    Calendar cal = Calendar.getInstance();
                cal.setTime(date);

System.out.println(cal.get(Calendar.DAY_OF_MONTH) + "-" + cal.get(Calendar.MONTH) + "-"
                        + cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.HOUR_OF_DAY) + "-" + cal.get(Calendar.MINUTE)
                        + "-" + cal.get(Calendar.SECOND));
4

4 に答える 4

1

monthは 0 ベースなので、何を取得しても問題ありません。

于 2013-07-01T19:46:10.397 に答える
1

1つ追加するだけです。

Calendar は月を 0-11 の範囲で返すため、追加1すると、おなじみの 1-12 の範囲に変換されます。

上記にリンクされているjavadocを引用:

グレゴリオ暦とユリウス暦の年の最初の月は 1 月で、これは 0 です。

于 2013-07-01T19:46:16.363 に答える