Java Jasper报告日期不为';t根据给定的格式进行更改

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">

我正在尝试获取所需日期的格式,但iReport中的预览始终显示相同的格式:dd/mm/yy,而导出到xls后,我在所有单元格中都会获得dd-MMM-yy。 我的xml看起来像

                    <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>