繁体   English   中英

从字符串更改日期格式

[英]To change date format from string

我在gwt框架中使用了datebox.datebox的值在字段t3中作为字符串存储在数据库中。 当我打印碧玉报告时,t3的值“ 11/02/2014”显示为“ 11022014”。 而且,我使用了这种格式,但是有一些错误。

<?xml version="1.0" encoding="UTF-8"?>
<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="RosterReport" pageWidth="700" pageHeight="595" orientation="Landscape" columnWidth="660" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <field name="t1" class="java.lang.String"/>
    <field name="t2" class="java.lang.String"/>
    <field name="t3" class="java.lang.String"/>
    <field name="t4" class="java.lang.String"/>
    <field name="t5" class="java.lang.String"/>
    <variable name="date1" class="java.util.Date">
        <variableExpression><![CDATA[new SimpleDateFormat("MM/dd/yyyy").format($F{t3})]]></variableExpression>
    </variable>
    <variable name="date2" class="java.lang.String">
        <variableExpression><![CDATA[new SimpleDateFormat("MM/dd/yyyy").format($F{t4})]]></variableExpression>
    </variable>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="58" splitType="Stretch">
            <staticText>
                <reportElement x="247" y="17" width="153" height="39"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font size="12" isBold="true"/>
                </textElement>
                <text><![CDATA[Report for Roster]]></text>
            </staticText>
            <staticText>
                <reportElement x="530" y="0" width="43" height="20"/>
                <textElement/>
                <text><![CDATA[Printed;]]></text>
            </staticText>
            <textField>
                <reportElement x="573" y="0" width="87" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression>
            </textField>
        </band>
    </title>
    <pageHeader>
        <band height="6" splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band height="22" splitType="Stretch">
            <staticText>
                <reportElement x="115" y="0" width="81" height="20"/>
                <textElement>
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Code]]></text>
            </staticText>
            <staticText>
                <reportElement x="196" y="0" width="100" height="20"/>
                <textElement>
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Description]]></text>
            </staticText>
            <staticText>
                <reportElement x="296" y="0" width="73" height="20"/>
                <textElement>
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Start Date]]></text>
            </staticText>
            <staticText>
                <reportElement x="369" y="0" width="78" height="20"/>
                <textElement>
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[End Date]]></text>
            </staticText>
            <staticText>
                <reportElement x="447" y="0" width="100" height="20"/>
                <textElement>
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[Remark]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="34" splitType="Stretch">
            <textField>
                <reportElement x="196" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{t2}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="447" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{t5}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="115" y="0" width="81" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{t1}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="300" y="0" width="69" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$V{date1}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="369" y="0" width="78" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$V{date2}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <columnFooter>
        <band height="14" splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band height="9" splitType="Stretch"/>
    </pageFooter>
</jasperReport>

错误是

Source text : new SimpleDateFormat("MM/dd/yyyy").format($F{t3})
Caused by: java.lang.IllegalArgumentException: Cannot format given Object as a Date

如何解决这个错误?

format()方法将Date作为参数,并且您正在传递字符串。

更改:

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

至:

new SimpleDateFormat("MM/dd/yyyy").format(new SimpleDateFormat("ddMMyyyy").parse($F{t3}))

这样,首先将给定的字符串解析为Date。

问题出在您的$ F {t3}中,它给“ 02112014”(例如date)和SimpleDateFormat无法格式化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM