关于SimpleDateFormat代码报错

    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类进行日期计算,通过调整日历的日期来实现减去一天的操作。

请注意,此代码段只是作为示例用途,您可能需要根据实际需求进行更改。此外,您还可以处理异常,进行必要的错误处理。

希望这可以帮助您修复问题。如果您有任何其他问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^