2014-02-11 3 views
0

gwt 프레임 워크에서 datebox를 사용했습니다. datebox의 값은 데이터베이스에 t3 필드의 문자열로 저장됩니다. jasper report를 출력 할 때 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 

입니까?

+1

디버거를 사용하고 SimpleDateFormat # format()에 전달 된'$ F {t3}'의 값을 확인하십시오 –

답변

3

format() 메서드는 Date를 매개 변수로 사용하며 문자열을 전달합니다.

변경 :

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

에 :

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

지정된 캐릭터가 먼저 날짜로 구문 분석됩니다 그런 식으로.

+0

대단히 감사합니다. parse ($ F {t3})). MySQL 데이터베이스 날짜 형식이 '20140215'이기 때문에 날짜 형식 형식을 새로운 SimpleDateFormat ("dd/MM/yyyy") 형식으로 변경했습니다. . –

0

$ F {t3} 날짜가 "02112014"이고 SimpleDateFormat에서이 형식을 지정할 수 없습니다.

관련 문제