Jasper reports Jasper/ireports中文本的日期格式部分

Jasper reports Jasper/ireports中文本的日期格式部分,jasper-reports,ireport,Jasper Reports,Ireport,如何格式化Jasper/iReports(4.5.1)中显示部分文本的日期字段(数据库字段) 通过报告中的文本字段显示。。。(请使用Groovy) “此日期小计:”+$F(存款日) 我尝试了(新的SimpleDataFormat(“MM/dd/yyyy”)。解析({DEPOSIT\u DATE}),收到错误消息: net.sf.jasperreports.engine.fill.JRExpressionEvalException:  Error evaluating expression : S

如何格式化Jasper/iReports(4.5.1)中显示部分文本的日期字段(数据库字段)

通过报告中的文本字段显示。。。(请使用Groovy)

“此日期小计:”+$F(存款日)

我尝试了
(新的SimpleDataFormat(“MM/dd/yyyy”)。解析({DEPOSIT\u DATE})
,收到错误消息:

net.sf.jasperreports.engine.fill.JRExpressionEvalException: 
Error evaluating expression : Source text : (new SimpleDateFormat("MM/dd/yyyy")).parse($F{BANK_DATE}) 
我想在报告中显示的内容如下

此日期的小计:MM/DD/YYYY-格式…

尝试以下操作:

new SimpleDateFormat("MM/dd/yyyy").format($F{BANK_DATE})

看起来,您尝试解析而不是格式化(如上所述)

您还可以使用textfield属性选项卡中的模式漂亮地打印日期,或者手动更改jrxml中的模式:

<textField pattern="MM/dd/yyyy">
  <!-- here comes other generated data-->
  <textFieldExpression><![CDATA[$F{BANK_DATE}]]></textFieldExpression>
</textField>

我同意Mateusz的观点,文本字段具有模式比新的SimpleDataFormat(“someFormat”).format(“jasperField”)的性能更快。当你处理大量的报告时,这一点很重要。这是我的例子

<textField pattern="MM/dd/yyyy" isBlankWhenNull="true">
...
    <textFieldExpression class="java.util.Date"><![CDATA[$F{certIssueDate}]]></textFieldExpression>
</textField>

...

如果日期字段是字符串值,请说:
“2014-11-20”


如果您只有1个文本字段需要格式化,这是可以的。如果您需要格式化文本字段的一部分,您将如何使用它?
<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>
<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>
<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>