10

Java で日付から月を取得する方法:

        DateFormat inputDF  = new SimpleDateFormat("mm/dd/yy");
        Date date1 = inputDF.parse("9/30/11");

        Calendar cal = Calendar.getInstance();
        cal.setTime(date1);

        int month = cal.get(Calendar.MONTH);
        int day = cal.get(Calendar.DAY_OF_MONTH);
        int year = cal.get(Calendar.YEAR);

        System.out.println(month+" - "+day+" - "+year);

このコードは日と年を返しますが、月は返しません。

出力:

0 - 30 - 2011
4

7 に答える 7

17

これは、形式が正しくないためです"MM/dd/yy"。月が必要です"mm"。分のためです。

DateFormat inputDF  = new SimpleDateFormat("MM/dd/yy");
Date date1 = inputDF.parse("9/30/11");

Calendar cal = Calendar.getInstance();
cal.setTime(date1);

int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int year = cal.get(Calendar.YEAR);

System.out.println(month+" - "+day+" - "+year);

プリント8 - 30 - 2011(月はゼロから始まるので、demo )

于 2013-09-26T18:37:14.777 に答える
5

まず、Javadocs によると「分」であるmm日付形式で使用しました。分を月ではなく に設定します。月のデフォルトは 0 (1 月) のようです。9

MM月を解析するには (大文字の 'M's) を使用します。次に、月が 1 ではなく 0 で始まる8ためCalendarが表示されます。を追加1して、目的の9.

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

// MM is month, mm is minutes
DateFormat inputDF  = new SimpleDateFormat("MM/dd/yy");  

以降

int month = cal.get(Calendar.MONTH) + 1; // To shift range from 0-11 to 1-12
于 2013-09-26T18:37:15.287 に答える
3

SimpleDateFormatjavadocを読むと、それmmが数分間であることがわかります。MM月間必要です。

DateFormat inputDF  = new SimpleDateFormat("MM/dd/yy");

それ以外の場合、フォーマットはフィールドを読み取らずmonth、 の値を想定します0

于 2013-09-26T18:37:07.370 に答える
1

月の形式MMmm

 DateFormat inputDF  = new SimpleDateFormat("MM/dd/yy");
于 2013-09-26T18:37:16.220 に答える
0

MMの代わりに使用して、このようにしてみてくださいmm:-

    DateFormat inputDF  = new SimpleDateFormat("MM/dd/yy");
    Date date1 = inputDF.parse("9/30/11");

    Calendar cal = Calendar.getInstance();
    cal.setTime(date1);

    int month = cal.get(Calendar.MONTH);
    int day = cal.get(Calendar.DAY_OF_MONTH);
    int year = cal.get(Calendar.YEAR);

    System.out.println(month+" - "+day+" - "+year);

インデックスが 0 から始まるため、印刷される月は 8 になります。

または試してみてください:-

int month = cal.get(Calendar.MONTH) + 1;
于 2013-09-26T18:37:30.463 に答える
0

mmは分MMです。形式を指定するときに使用します。

Calendar cal = Calendar.getInstance();
cal.setTime(date1);

int month = cal.get(Calendar.MONTH);// returns month value index starts from 0
于 2013-09-27T03:47:58.097 に答える