//this month
SimpleDateFormat df_formonth = new SimpleDateFormat("MMM");
c.set(Calendar.MONTH, 5); //integer to be changed upon click - maybe month counter from now
String currmonth = df_formonth.format(c.getTime());
由于我们将月份从0到11指数
,因此应该返回6月但它会在7月返回
任何解决方案或其他解决方法?
答案 0 :(得分:4)
因为今天的日期是8月31日,而6月只有30天,所以月份会自动增加到7月份的下个月。
要解决此问题,您可以在设置月份之前设置日期
c.set(Calendar.DATE, 30);
c.set(Calendar.MONTH, Calendar.JUNE);
另外,为了清晰起见,我建议使用Calendar
常量
答案 1 :(得分:0)
当您在月末(8月31日)处理日期时,众所周知的问题。 您应该明确设置日期。
例如,请阅读此处了解详情: http://www.coderanch.com/t/385083/java/java/java-util-Calendar-set
答案 2 :(得分:-1)
您可以尝试以下操作:
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int day = cal.get(Calendar.DAY_OF_MONTH);
cal.clear();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_MONTH, day);
cal.set(Calendar.MONTH, Calendar.JUNE);