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
c.get(Calendar.MONTH);

返回月份的索引(即一月为 0)。所以没什么错,这就是 API ......

编辑

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

将正确显示日期。

请注意,Java API 提供DateFormat API 以各种格式显示日期(取决于用户的语言环境)。使用它通常是更好的选择。

于 2012-12-18T16:56:25.310 回答
0

在 Java 中,mounths 的数量从 0 开始

于 2012-12-18T16:57:25.360 回答
0

这是一种方法,使用 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 回答