如何格式化日期字段(数据库字段)显示Jasper / iReports(4.5.1)中文本的一部分
通过报告中的文本字段显示...(请使用Groovy)
“此日期的子总数:”+ $ F(DEPOSIT_DATE)
我已尝试(new SimpleDateFormat("MM/dd/yyyy")).parse($F{DEPOSIT_DATE})
并收到错误消息:
net.sf.jasperreports.engine.fill.JRExpressionEvalException:
Error evaluating expression : Source text : (new SimpleDateFormat("MM/dd/yyyy")).parse($F{BANK_DATE})
我想在报告中显示的内容如下......
此日期的小计:MM / DD / YYYY - 格式......
答案 0 :(得分:28)
试试这个:
new SimpleDateFormat("MM/dd/yyyy").format($F{BANK_DATE})
答案 1 :(得分:5)
我同意Mateusz, textField 与模式 perfrormes比新的SimpleDateFormat(“someFormat”)。format(“jasperField”)更快。当你处理大量报告时,这很重要。这是我的例子
<textField pattern="MM/dd/yyyy" isBlankWhenNull="true">
...
<textFieldExpression class="java.util.Date"><![CDATA[$F{certIssueDate}]]></textFieldExpression>
</textField>
答案 2 :(得分:4)
看来,您尝试解析而不是格式化(如上所述)。
您还可以在文本域属性选项卡中使用Pattern来漂亮打印日期,或者手动更改jrxml中的模式:
<textField pattern="MM/dd/yyyy">
<!-- here comes other generated data-->
<textFieldExpression><![CDATA[$F{BANK_DATE}]]></textFieldExpression>
</textField>
答案 3 :(得分:2)
如果Date字段是String值,请说:"2014-11-20"
<field name="dateField" class="java.lang.String"/>
然后你可以这样做
<variable name="THE_DATE" class="java.util.Date">
<variableExpression>
<![CDATA[new java.text.SimpleDateFormat("yyyy-mm-dd").parse($F{dateField})]]>
</variableExpression>
</variable>
<textField pattern="dd/MM/yyyy" isBlankWhenNull="true">
<reportElement x="0" y="0" width="88" height="20" uuid="47b41787-a8fd-44ea-bf96-7e5484e477fb"/>
<textElement textAlignment="Left" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[ $V{THE_DATE} ]]></textFieldExpression>
</textField>
您可以设置模式 右键单击该字段 - &gt;点击字段模式 - &gt;选择日期 - &gt;选择日期模式
你也可以这样做
<textField isBlankWhenNull="true">
<reportElement x="0" y="0" width="88" height="20" uuid="47b41787-a8fd-44ea-bf96-7e5484e477fb"/>
<textElement textAlignment="Left" verticalAlignment="Middle"/>
<textFieldExpression class="java.util.Date"><![CDATA[ new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.text.SimpleDateFormat("yyyy-mm-dd").parse($F{dateField})) ]]></textFieldExpression>
</textField>
但是,如果DateField的类型为Date
然后做下面就好了。
<field name="dateField" class="java.util.Date"/>
<textField pattern="dd/MM/yyyy" isBlankWhenNull="true">
<reportElement x="0" y="0" width="88" height="20" uuid="47b41787-a8fd-44ea-bf96-7e5484e477fb"/>
<textElement textAlignment="Left" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[ $F{dateField} ]]></textFieldExpression>
</textField>