我使用以下代码以 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 而不是内置的 Java API。Joda Time 更加干净。)
编辑:对于添加年份的新要求,您可以使用
calendarStart.add(Calendar.YEAR, 1);
关于java - 以 'yyyy-MM-dd' 格式计算当前年份在 Java 中设置了不正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21675094/