如何在Java的单行中获取当前日期前六个月的日期?

Mad*_*dan 6 java jasper-reports

我想在现在的日期前六个月得到一个日期.我尝试的代码是:

SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -6);
System.out.println(format.format(c.getTime()));
Run Code Online (Sandbox Code Playgroud)

但是我希望将它减少为单行表达式,我想在我的Jasper报告中使用它来放入参数表达式.

如何将其减少为单行表达式?

Jig*_*shi 5

将此util方法包装到Utility类中,构建jar并将其放在iReport的classpath中,以及每次编译此jrxml时


Tag*_*eev 5

使用Java 8,您可以单行执行此操作:

System.out.println(LocalDate.now().minusMonths(6).format(DateTimeFormatter.ofPattern("yyyy/MM/dd")));
Run Code Online (Sandbox Code Playgroud)

如果你不能使用Java 8考虑使用Joda Time库.