String a =
new SimpleDateFormat("MM-yyyy").format(new Date()).equals("08-2023")
?new SimpleDateFormat("dd-MMM-yyyy").format(new Date())
:new SimpleDateFormat("dd-MMM-yyyy").format((new SimpleDateFormat().parse("08/01/2023 6:00 PM",new ParsePosition(0))-1));
Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: new SimpleDateFormat("MM-yyyy").format(new Date()).equals($V{monthlogic})
?new SimpleDateFormat("dd-MMM-yyyy").format(new Date())
:new SimpleDateFormat("dd-MMM-yyyy").format((new SimpleDateFormat().parse($V{modifiedDate},new ParsePosition(0))-1))
Caused by: groovy.lang.MissingMethodException: No signature of method: java.util.Date.minus() is applicable for argument types: (Integer) values: [1]
Possible solutions: find(), is(java.lang.Object), find(groovy.lang.Closure), any(), use([Ljava.lang.Object;), macro(groovy.lang.Closure)
请问更正代码
dd-MMM-yyyy 怎么能匹配08/01/2023 6:00 PM
它应该匹配的是 08-01-2023 这样的
【以下回答由 GPT 生成】
我可以帮助您修复代码并解决这个问题。
这个问题是由于代码中的日期计算导致的异常。在Java中,Date类没有minus()方法来减去一个整数。相反,我们可以使用Calendar类来执行日期计算。
以下是修复代码并解决问题的示例代码段:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
SimpleDateFormat dateFormat = new SimpleDateFormat("MM-yyyy");
String currentDate = dateFormat.format(new Date());
String a;
if (currentDate.equals("08-2023")) {
SimpleDateFormat newDateFormat = new SimpleDateFormat("dd-MMM-yyyy");
a = newDateFormat.format(new Date());
} else {
SimpleDateFormat newDateFormat = new SimpleDateFormat("dd-MMM-yyyy");
Calendar calendar = Calendar.getInstance();
calendar.setTime(newDateFormat.parse("08/01/2023 6:00 PM"));
calendar.add(Calendar.DATE, -1); // 减去一天
a = newDateFormat.format(calendar.getTime());
}
System.out.println(a);
此代码段中使用了Calendar类进行日期计算,通过调整日历的日期来实现减去一天的操作。
请注意,此代码段只是作为示例用途,您可能需要根据实际需求进行更改。此外,您还可以处理异常,进行必要的错误处理。
希望这可以帮助您修复问题。如果您有任何其他问题,请随时提问。
【相关推荐】