在Android中将月份+1添加到日历月的日历问题

Nav*_*een 28 java android date

我使用以下代码

Calendar cal = Calendar.getInstance();
System.out.println("Before "+cal.getTime());
cal.set(Calendar.MONTH, 01);
System.out.println("After "+cal.getTime());
Run Code Online (Sandbox Code Playgroud)

输出是

Before Thu Jan 31 10:07:34 IST 2013
After Sun Mar 03 10:07:34 IST 2013
Run Code Online (Sandbox Code Playgroud)

添加+1jan是给mar月.如果我们将30天添加到当前日期,可能是它返回正确的输出.但我想显示二月月.可以任何身体帮助我...

Ram*_*ran 55

您可以看到+1设置字段添加了30天的日期与您的日期不同(从您的输出中观察到).

如果你想要几个月,那么使用代码

Calendar cal = Calendar.getInstance();
System.out.println("Before "+cal.getTime());  //Before Thu Jan 31 10:16:23 IST 2013

cal.add(Calendar.MONTH, 1);
System.out.println("After "+cal.getTime()); //After Thu Feb 28 10:16:23 IST 2013
Run Code Online (Sandbox Code Playgroud)

  • Calendar.add(Calendar.MONTH,1)不会添加30天,它只添加1个月.`Calendar cal = Calendar.getInstance(); DateFormat df = new SimpleDateFormat("dd-MMM-yyy"); cal.setTime(df.parse( "20-FEB-2015")); System.out.println("Before"+ cal.getTime()); //星期二2月20日00:00:00 EET 2015 cal.add(Calendar.MONTH,1); System.out.println("After"+ cal.getTime()); //在Eri Mar 20 00:00:00 EET 2015之后`我正在使用JDK 7 (2认同)

Lal*_*ani 7

你必须使用add()像,

cal.add(Calendar.MONTH, 1);
Run Code Online (Sandbox Code Playgroud)

输出 - >

Before Thu Jan 31 10:15:04 IST 2013
After Thu Feb 28 10:15:04 IST 2013
Run Code Online (Sandbox Code Playgroud)