我使用以下代码以yyyy-MM-dd格式计算当前年份值
但是下面的代码将paramStartDate值分配为0001-01-01,这是不正确的
应该是“ 2014-01-01”
else if(scopeSelected != null && scopeSelected.equalsIgnoreCase("Year To Date")){
Calendar calendarStart = Calendar.getInstance();
calendarStart.set(Calendar.YEAR,calendarStart.YEAR);
calendarStart.set(Calendar.MONTH,0);
calendarStart.set(Calendar.DAY_OF_MONTH,1);
Date startDate=calendarStart.getTime();
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
paramStartDate = dateFormat1.format(startDate);
setParamStartDate(paramStartDate);
}
最佳答案
这就是问题:
calendarStart.set(Calendar.YEAR,calendarStart.YEAR);
您正在将值设置为
Calendar.YEAR
,它是一个值为1的常数。如果您不想更改年份,只需完全删除此行。
(顺便说一句,我强烈建议使用Joda Time而不是内置的JavaAPI。JodaTime更加整洁。)
编辑:对于添加一年的新要求,您将使用
calendarStart.add(Calendar.YEAR, 1);