Jasper reports 变量的值显示为null,而不是格式化日期

Jasper reports 变量的值显示为null,而不是格式化日期,jasper-reports,Jasper Reports,您好,我在显示此格式的字符串日期时遇到问题。“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

您好,我在显示此格式的字符串日期时遇到问题。
“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

第一种方法 尝试使用参数而不是变量。在这种情况下,不需要使用变量的“幂”和特性

样品
@温妮,
$P{startdate}
的类型是什么?你查了什么值?@AlexK是一个字符串,例如“01-11-16”
<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>
<variable name="S_DATE" class="java.util.Date" resetType="None">
    <variableExpression><![CDATA[new SimpleDateFormat("dd-MMM-yy", Locale.US).parse($P{startdate})]]></variableExpression>
</variable>