您好我在显示此格式"01-Nov-16"
的字符串日期时遇到问题,因为"01-11-2016"
null
是返回的内容。我试过我所知道的一切。下面是我的确切xml。
<variable name="S_DATE" class="java.util.Date">
<variableExpression><![CDATA[new java.text.SimpleDateFormat("dd-MMM-yy",java.util.Locale.US).parse($P{startdate})]]></variableExpression>
</variable>
<textField isStretchWithOverflow="true" pattern="dd-MM-yyyy" isBlankWhenNull="false">
<reportElement stretchType="RelativeToTallestObject" x="205" y="0" width="102" height="20" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" forecolor="#000000" uuid="560349d8-0bb8-44f0-90ce-41ffb71544cc"/>
<textElement textAlignment="Left">
<font size="10"/>
</textElement>
<textFieldExpression><![CDATA[$V{S_DATE}]]></textFieldExpression>
</textField>
startdate
参数的类型为String
答案 0 :(得分:0)
尝试使用参数而不是变量。在这种情况下,无需使用“权力”和变量的特征。
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Format date" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<parameter name="dateAsString" class="java.lang.String">
<defaultValueExpression><![CDATA["01-Nov-2016"]]></defaultValueExpression>
</parameter>
<parameter name="dateParam" class="java.util.Date">
<defaultValueExpression><![CDATA[new SimpleDateFormat("dd-MMM-yy", Locale.US).parse($P{dateAsString})]]></defaultValueExpression>
</parameter>
<title>
<band height="79" splitType="Stretch">
<textField pattern="dd-MM-yyyy">
<reportElement x="130" y="20" width="250" height="30"/>
<textFieldExpression><![CDATA[$P{dateParam}]]></textFieldExpression>
</textField>
</band>
</title>
</jasperReport>
Jaspersoft Studio 的结果将是:
更改变量的resetType
。您案例的有效类型为 无 。正确的表达方式是:
<variable name="S_DATE" class="java.util.Date" resetType="None">
<variableExpression><![CDATA[new SimpleDateFormat("dd-MMM-yy", Locale.US).parse($P{startdate})]]></variableExpression>
</variable>