Java Jasper报告日期不为';t根据给定的格式进行更改
我正在尝试获取所需日期的格式,但iReport中的预览始终显示相同的格式:dd/mm/yy,而导出到xls后,我在所有单元格中都会获得dd-MMM-yy。 我的xml看起来像Java Jasper报告日期不为';t根据给定的格式进行更改,java,jasper-reports,Java,Jasper Reports,我正在尝试获取所需日期的格式,但iReport中的预览始终显示相同的格式:dd/mm/yy,而导出到xls后,我在所有单元格中都会获得dd-MMM-yy。 我的xml看起来像 <jr:detailCell style="table 2_TD" height="20" rowSpan="1"> <textField pattern="MMMMM dd, yyyy">
<jr:detailCell style="table 2_TD" height="20" rowSpan="1">
<textField pattern="MMMMM dd, yyyy">
<reportElement x="0" y="0" width="90" height="20" uuid="1a3dc360-984e-4029-af37-ffa54c84f1c3"/>
<textFieldExpression><![CDATA[$F{DECISION_DATE}]]></textFieldExpression>
</textField>
</jr:detailCell>
我做错了什么?
我使用JRXlsExporter将报告导出到xls。
字段日期类型为
<field name="DECISION_DATE" class="java.lang.String"/>
通过查看Jasper Reports库提供的示例,我可以找到如下内容:
<field name="OrderDate" class="java.util.Date"/>
...
<textField isStretchWithOverflow="true" pattern="yyyy, MMM dd">
<reportElement positionType="Float" x="54" y="2" width="87" height="10" uuid="1886b1ce-67ff-4457-89de-7baeae1446d0"/>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{OrderDate}]]></textFieldExpression>
</textField>
<field name="DECISION_DATE" class="java.lang.String"/>
由于textField
的模式
属性不适用于DECISION\u DATE
字段,解决方案可能是直接在textField表达式
中格式化字段值(一个字符串),导入模式
属性。例如(基于您的代码):
请注意,在我放置
的地方,您应该放置时间戳的掩码。将SQLite与datetime
数据类型一起使用时,生成的字符串是“2014-05-18 01:18:18”(对于java.lang.string
字段),因此您可以使用掩码“yyyy-MM-dd HH:MM:ss”,例如。您能显示文本字段中的元素吗?@GustavoMeira当然,谢谢。我不是专家,但我会尽量从你那里得到更多的信息,好吗?你甚至可以将这些信息添加到你的问题中。日期字段是什么类型的?包含textField
的报表是子报表吗?这是另一回事。textFieldExpressio
的内容缺少“]”。应该类似于
。好的。我现在明白了。您可以在textFieldExpression
中直接使用textFieldExpression
输入模式
属性,尝试类似newjava.text.SimpleDateFormat(“MMMM-dd,yyyyy”).format(new java.text.SimpleDateFormat(“时间字符串的掩码”).parse({DECISION\u-DATE})之类的操作。
<textField>
<reportElement x="0" y="0" width="90" height="20" uuid="1a3dc360-984e-4029-af37-ffa54c84f1c3"/>
<textFieldExpression><![CDATA[new java.text.SimpleDateFormat("MMMM dd, yyyy").format(new java.text.SimpleDateFormat("<your timestamp mask>").parse($F{DECISION_DATE}))]]></textFieldExpression>
</textField>