Calendar.MONTH gives wrong value

2020-02-12 03:59发布

I'm trying to get the actual month from the Calendar using the following:

Calendar c = Calendar.getInstance();          
String time = String.valueOf(c.get(Calendar.MONTH));

According the system settings "Settings --> Date & Time" actual month is 10 while get(Calendar.MONTH) returns 09.

6条回答
小情绪 Triste *
2楼-- · 2020-02-12 03:59

Keep in mind that months values start from 0, so October is actually month number 9.

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Calendar.html#MONTH

查看更多
萌系小妹纸
3楼-- · 2020-02-12 04:05

Calendar.MONTH

returns

0 for 1st month (jan)
1 for 2nd month (feb)
.
.
11 for 12th month (dec)

Docs

So change your code to

String time = String.valueOf(c.get(Calendar.MONTH)+1);// added 1 
查看更多
再贱就再见
4楼-- · 2020-02-12 04:12

use this

    public void DateDialog(){

    DatePickerDialog.OnDateSetListener listener=new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
        {
            int Month;
            Month=monthOfYear+1;
            fromDate.setText(year + "-" + Month + "-" + dayOfMonth);
        }};
    DatePickerDialog dpDialog=new DatePickerDialog(getActivity(), listener, year, month, day);
    dpDialog.getDatePicker().setMinDate(mcalendar.getTimeInMillis());
    dpDialog.show();
}
查看更多
姐就是有狂的资本
5楼-- · 2020-02-12 04:14

Calendar.MONTH value starts from 0 to 11 not 1 to 12.

You may check the value of Calendar.JANUARY is 0 not 1.

Refer: http://developer.android.com/reference/java/util/Calendar.html#JANUARY

查看更多
成全新的幸福
6楼-- · 2020-02-12 04:25

Calendar.MONTH returns month which is zero based that is why it is giving 1 less than actual month Add 1 to get correct value

String time = String.valueOf(c.get(Calendar.MONTH)+1);
查看更多
倾城 Initia
7楼-- · 2020-02-12 04:25

I suggest trying

@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int day) {
Toast.makeText(getApplicationContext(), month+1 + "/" + day  + "/" + year, Toast.LENGTH_SHORT).show();
calDate = month+1 + "/" + day + "/" + year; }
});
查看更多
登录 后发表回答