Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jasper在excel中显示错误的日期时间_Java_Datetime_Timezone_Jasper Reports - Fatal编程技术网

Java jasper在excel中显示错误的日期时间

Java jasper在excel中显示错误的日期时间,java,datetime,timezone,jasper-reports,Java,Datetime,Timezone,Jasper Reports,我不知道为什么会发生这种情况,但时区和所有设置都是正确的,但datebase中的datetime并没有反映在报告中,并显示出一些不同的内容 注意:此excel报表由jasper报表工具导出 jrxml <?xml version="1.0" encoding="UTF-8" ?> <!-- Created with iReport - A designer for JasperReports --> <!DOCTYPE jasperReport PUBLIC "/

我不知道为什么会发生这种情况,但时区和所有设置都是正确的,但datebase中的datetime并没有反映在报告中,并显示出一些不同的内容

注意:此excel报表由jasper报表工具导出

jrxml

<?xml version="1.0" encoding="UTF-8"  ?>
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
         name="groundingReport"
         columnCount="1"
         printOrder="Vertical"
         orientation="Landscape"
         pageWidth="3600"
         pageHeight="842"
         columnWidth="3600"
         columnSpacing="0"
         leftMargin="0"
         rightMargin="0"
         topMargin="0"
         bottomMargin="0"
         whenNoDataType="AllSectionsNoDetail"
         isTitleNewPage="false"
         isSummaryNewPage="false"
         isIgnorePagination="true">

    <property name="ireport.encoding" value="UTF-8" />
    <import value="java.util.*" />
    <import value="net.sf.jasperreports.engine.*" />
    <import value="net.sf.jasperreports.engine.data.*" />
    <parameter name="SIMPLE_DATE_FORMAT_WITH_TIME_ZONE" isForPrompting="false" class="com.adesa.framework.report.util.SimpleDateFormatWithTimeZone">
        <defaultValueExpression ><![CDATA[new com.adesa.framework.report.util.SimpleDateFormatWithTimeZone("MM/dd/yyyy HH:mm:ss a", TimeZone.getTimeZone("US/Eastern"))]]></defaultValueExpression>
    </parameter>
    <parameter name="INSPECTION_PROVIDER" isForPrompting="false" class="java.lang.String"/>

    <field name="inspectionOrderedDate" class="java.sql.Timestamp"/>
    <field name="inspectionQCCompleteDate" class="java.sql.Timestamp"/>
    <field name="inspectionCompleteDate" class="java.sql.Timestamp"/>
    <field name="inspectionProvider" class="java.lang.String"/>

    <variable name="Test" class="java.lang.String" resetType="Report" calculation="Nothing">
    </variable>
        <background>
            <band height="0"  isSplitAllowed="true" >
            </band>
        </background>
        <title>
            <band height="50"  isSplitAllowed="true" >
            </band>
        </title>
        <pageHeader>
            <band height="75"  isSplitAllowed="true" >
                <textField isStretchWithOverflow="true" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                <textFieldExpression   class="java.lang.String"><![CDATA[$P{JRXML_DT_FRM}]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                    <reportElement
                        mode="Transparent"
                        x="162"
                        y="30"
                        width="162"
                        height="15"
                        key="textField-40"
                        stretchType="RelativeToTallestObject"
                        positionType="Float"
                        isPrintWhenDetailOverflows="true"/>
                    <box>                   <pen lineWidth="0.0"/>
                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                    <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                    <bottomPen lineWidth="0.0" lineColor="#000000"/>
                    <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                    <textElement verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.lang.String"><![CDATA[$P{JRXML_DT_TO}]]></textFieldExpression>
                </textField>
                <staticText>

                    <textElement textAlignment="Left" verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Inspection Provider]]></text>
                </staticText>
                <textField isStretchWithOverflow="true" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                    <textElement verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.lang.String"><![CDATA[$P{INSPECTION_PROVIDER}.equals("AUTOVIN LIVE") ? "AutoVIN Live" : $P{INSPECTION_PROVIDER}]]></textFieldExpression>
                </textField>
            </band>
        </pageHeader>
        <columnHeader>
            <band height="24"  isSplitAllowed="true" >
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Inspection Provider]]></text>
                </staticText>
                <staticText>
                    <reportElement
                        mode="Opaque"
                        x="162"
                        y="0"
                        width="162"
                        height="24"
                        backcolor="#CCCCFF"
                        key="staticText-2"/>
                    <box>                   <pen lineWidth="0.0"/>
                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                    <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                    <bottomPen lineWidth="0.0" lineColor="#000000"/>
                    <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
</box>
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[VIN]]></text>
                </staticText>
                <staticText>
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Inspection Ordered]]></text>
                </staticText>
                <staticText>
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Inspection Complete]]></text>
                </staticText>
                <staticText>
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[ Days to QC Complete]]></text>
                </staticText>
                <staticText>
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Inspection Incomplete]]></text>
                </staticText>
                <staticText>
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Incomplete Inspection Reason]]></text>
                </staticText>
                <staticText>
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[QC Complete]]></text>
                </staticText>
                <staticText>
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Inspection Not Inspected ]]></text>
                </staticText>
                <staticText>
                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Inspection ID]]></text>
                </staticText>
                <staticText>

                    <textElement textAlignment="Center" verticalAlignment="Top">
                        <font fontName="Arial" pdfFontName="Helvetica-Bold" isBold="true"/>
                    </textElement>
                <text><![CDATA[Inspection Cancelled]]></text>
                </staticText>
            </band>
        </columnHeader>
        <detail>
            <band height="15"  isSplitAllowed="true" >
                <textField isStretchWithOverflow="true" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <textElement verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.lang.String"><![CDATA[$F{inspectionProvider}]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <textElement verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.lang.String"><![CDATA[$F{vin}]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" pattern="MM/dd/yyyy hh:mm:ss a" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <textElement textAlignment="Center" verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.util.Date"><![CDATA[new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a").parse($P{SIMPLE_DATE_FORMAT_WITH_TIME_ZONE}.format($F{inspectionOrderedDate}))]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" pattern="MM/dd/yyyy hh:mm:ss a" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <textElement textAlignment="Center" verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.util.Date"><![CDATA[new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a").parse($P{SIMPLE_DATE_FORMAT_WITH_TIME_ZONE}.format($F{inspectionCompleteDate}))]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" pattern="###0;-###0" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <textElement textAlignment="Center" verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.lang.Integer"><![CDATA[$F{daysToQCComplete} != null ? Integer.valueOf($F{daysToQCComplete}): null]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <textElement verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.lang.String"><![CDATA[$P{SIMPLE_DATE_FORMAT_WITH_TIME_ZONE}.format($F{inspectionIncompleteDate})]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <textElement verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.lang.String"><![CDATA[$F{incompleteInspectionReason}]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" pattern="MM/dd/yyyy hh:mm:ss a" isBlankWhenNull="true" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <textElement textAlignment="Center" verticalAlignment="Bottom">
                        <font fontName="Arial" pdfFontName="Helvetica" isItalic="false"/>
                    </textElement>
                <textFieldExpression   class="java.util.Date"><![CDATA[new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a").parse($P{SIMPLE_DATE_FORMAT_WITH_TIME_ZONE}.format($F{inspectionQCCompleteDate}))]]></textFieldExpression>
                </textField>

            </band>
        </detail>

</jasperReport>

日期在oracle数据库中:

2018年1月2日下午11.22.09

日期在excel reoprt中

2018年1月2日下午6:22:09

我真的不知道这有什么问题

但从excel报表和db的角度来看,时区是正确的。 时区仅为“美国/东部”

出现错误的列是以下字段:

检查QCCompletedate,检查Completedate


请有人帮我解决这个问题。

要解决日期时间差异,请在jrxml中为inspectionQCCompleteDateinspectionCompleteDate列定义textFieldExpression,如下所示:

 <textFieldExpression class="java.util.Date">
    <![CDATA[$P{SIMPLE_DATE_FORMAT_WITH_TIME_ZONE}.parse($P{SIMPLE_DATE_FORMAT_WITH_TIME_ZONE}.format($F{inspectionQCCompleteDate}))]]>
</textFieldExpression>


<textFieldExpression class="java.util.Date">
    <![CDATA[$P{SIMPLE_DATE_FORMAT_WITH_TIME_ZONE}.parse($P{SIMPLE_DATE_FORMAT_WITH_TIME_ZONE}.format($F{inspectionCompleteDate}))]]>
</textFieldExpression>


@AlexK I删除了多余的代码,并在底部添加了更多描述。你真是太棒了,兄弟。非常感谢你。你让我开心。