要在当前版本的jasper-report 中将 pattern属性 用于Date /
Time对象,您需要一个
java.util.Date类或它的子类之一。
解决的办法是转换
java.time.LocalDate和
java.time.LocalDateTime
转换为 java.util.Date
从java.time.LocalDate
<textField pattern="EE. dd.MM.yyyy"> <reportElement...> </reportElement> <textFieldexpression><![CDATA[java.util.Date.from($F{theLocalDate}.atStartOfDay(java.time.ZoneId.systemDefault()).toInstant())]]></textFieldexpression></textField>从java.time.LocalDateTime
<textField pattern="EE. dd.MM.yyyy"> <reportElement...> </reportElement> <textFieldexpression><![CDATA[java.util.Date.from($F{theLocalDateTime}.atZone(java.time.ZoneId.systemDefault()).toInstant())]]></textFieldexpression></textField>[转换为
java.sql.Timestamp](http://codingdict.com/questions/100061)
从java.time.LocalDate
<textField pattern="EE. dd.MM.yyyy"> <reportElement...> </reportElement> <textFieldexpression><![CDATA[java.sql.Timestamp.valueOf($F{theLocalDate}.atStartOfDay())]]></textFieldexpression></textField>从java.time.LocalDateTime
<textField pattern="EE. dd.MM.yyyy"> <reportElement...> </reportElement> <textFieldexpression><![CDATA[java.sql.Timestamp.valueOf($F{theLocalDateTime})]]></textFieldexpression></textField>注意:
应用模式始终是首选的解决方案,特别是在导出到excel时,因为正确的类将传递给poi(因此excel会将列识别为日期,并应用与模式相同的格式)



