mem*_*und 6 java jasper-reports java-time
在下面的剪辑中,属性$F是类java.time.LocalDateTime或java.time.LocalDate.
<textField pattern="EE. dd.MM.yyyy">
<reportElement...>
</reportElement>
<textFieldExpression><![CDATA[$F{theLocalDateTime}]]></textFieldExpression>
</textField>
Run Code Online (Sandbox Code Playgroud)
如何pattern在jasper报告中使用textField格式化此属性 ?
要在日期/时间对象的当前版本的jasper-report中使用pattern属性,您需要一个java.util.Date类或其中一个子类.
解决方案是转换java.time.LocalDate 和java.time.LocalDateTime
java.util.Date<textField pattern="EE. dd.MM.yyyy">
<reportElement...>
</reportElement>
<textFieldExpression><![CDATA[java.util.Date.from($F{theLocalDate}.atStartOfDay(java.time.ZoneId.systemDefault()).toInstant())]]></textFieldExpression>
</textField>
Run Code Online (Sandbox Code Playgroud)
<textField pattern="EE. dd.MM.yyyy">
<reportElement...>
</reportElement>
<textFieldExpression><![CDATA[java.util.Date.from($F{theLocalDateTime}.atZone(java.time.ZoneId.systemDefault()).toInstant())]]></textFieldExpression>
</textField>
Run Code Online (Sandbox Code Playgroud)
java.sql.Timestamp从 java.time.LocalDate
<textField pattern="EE. dd.MM.yyyy">
<reportElement...>
</reportElement>
<textFieldExpression><![CDATA[java.sql.Timestamp.valueOf($F{theLocalDate}.atStartOfDay())]]></textFieldExpression>
</textField>
Run Code Online (Sandbox Code Playgroud)
从 java.time.LocalDateTime
<textField pattern="EE. dd.MM.yyyy">
<reportElement...>
</reportElement>
<textFieldExpression><![CDATA[java.sql.Timestamp.valueOf($F{theLocalDateTime})]]></textFieldExpression>
</textField>
Run Code Online (Sandbox Code Playgroud)
注意:应用模式始终是首选解决方案,特别是在导出到excel时,因为正确的类将传递给poi(因此excel会将列识别为日期并应用与模式中相同的格式)
| 归档时间: |
|
| 查看次数: |
2766 次 |
| 最近记录: |