在 Jasper 中减去一天的日期

Substract one day of date in Jasper

我的 JasperReport 中有这样的代码 new SimpleDateFormat("dd/MM/yyyy").format(new Date()) - 24 * 3600 * 1000 但它不起作用,我正在尝试从今天减去一天。但是它像那样显示今天

<textFieldExpression><![CDATA["Test: " + new SimpleDateFormat("dd/MM/yyyy").format(new Date()) - 24 * 3600 * 1000]]></textFieldExpression>

据我所知,这段代码显然忽略了 - 24 * 3600 * 1000,因为表达式 new SimpleDateFormat("dd/MM/yyyy").format(new Date()) 决定了 你尝试减去一天之前的值忽略后面的算术。它只考虑 new Date(),也就是今天

您应该在格式化之前包括计算,例如

new SimpleDateFormat("dd/MM/yyyy").format(new Date(System.currentTimeMillis() - (24 * 3600 * 1000)))

如果你是 Java 8 或更高版本,我会使用 java.time,可能是这样的:

LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("dd/MM/uuuu")