在 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")
我的 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")