0

アクティビティで日付と表示を取得したい 今日このコードを実行しましたが、うまくいきません

    private int mYear;
        private int mMonth;
        private int mDay;
String Date
        final Calendar c = Calendar.getInstance();
                    mYear = c.get(Calendar.YEAR);
                    mMonth = c.get(Calendar.MONTH);
                    mDay = c.get(Calendar.DAY_OF_MONTH);
                    Date = mDay + "-" + mMonth + "-" + mYear;

どちら18-11-2012 が間違っているかを表示しますが、月が12であっても月が11と表示される理由を混乱させます。何が問題なのですか?

4

3 に答える 3

0

Javaでは、mounthsの数は0から始まります

于 2012-12-18T16:57:25.360 に答える
0

これを行う1つの方法は、CalendarとSimpleDateFormatを使用して、出力を必要に応じて簡単にフォーマットすることです。

    Calendar myCalendar = new GregorianCalendar();
    SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault());
    formatter.setCalendar(myCalendar);
    String dateString = formatter.format(myCalendar.getTime());

出力:
19-12-2012

于 2012-12-19T01:20:23.057 に答える
0
c.get(Calendar.MONTH);

月のインデックスを返します (つまり、1 月は 0)。何も問題はありません。それが API です...

編集

String date = mDay + "-" + (mMonth+1) + "-" + mYear;

日付を正しく表示します。

Java API は、 (ユーザーのロケールに応じて) さまざまな形式で日付を表示するためのDateFormat API を提供することに注意してください。多くの場合、それを使用する方が良い選択です。

于 2012-12-18T16:56:25.310 に答える