2010-04-15 16 views
9

Estoy usando el siguiente código para generar un gráfico en JasperReports.Cómo mostrar la fecha en formato HH: mm: ss en JasperReports?

<xyLineChart> 
    <chart evaluationTime="Band"> 
     <reportElement x="0" y="0" width="555" height="500"/> 
    </chart> 
    <xyDataset> 
     <dataset incrementType="None"/> 
     <xySeries> 
      <seriesExpression><![CDATA["CpuUsageGraph"]]></seriesExpression> 
      <xValueExpression><![CDATA[new Long($F{time}.getTime())]]></xValueExpression> 
      <yValueExpression><![CDATA[$F{cpuUsage}]]></yValueExpression> 
     </xySeries> 
    </xyDataset> 
    <linePlot> 
     <plot/> 
    </linePlot> 
</xyLineChart> 

Estoy imprimiendo la fecha en el eje X, pero se muestra en milisegundos. ¿Cómo lo visualizo en el formato hh:mm:ss?

Respuesta

17

Puede utilizar siguiente código en Java:

new SimpleDateFormat("MM-dd-yyyy HH:mm:ss z").format($V{VAR_DATE}) 

donde $ V {} VAR_DATE es la variable de fecha a convertir en el formato.

+0

¿Qué significa la z en este caso? – MindBrain

+1

'z' significa Zona horaria. Puede consultar aquí más patrones: http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html –

3

O simplemente podría poner la variable de fecha en un campo de texto y luego, ir a la vista de propiedades, y escribir esto en el campo Patrón: HH: mm: ss. También podría ser útil marcar la casilla de verificación "En blanco cuando es nulo"

0

La propiedad que está buscando es la "máscara de marca de tiempo del eje de tiempo". No hay un campo de "patrón" para un gráfico de series temporales.

0
<xyLineChart> 
    <chart evaluationTime="Band"> 
     <reportElement x="0" y="0" width="555" height="500"/> 
    </chart> 
    <xyDataset> 
     <dataset incrementType="None"/> 
     <xySeries> 
      <seriesExpression><![CDATA["CpuUsageGraph"]]></seriesExpression> 
      <xValueExpression><![CDATA[new Long($F{time}.getTime())]]></xValueExpression> 
      <yValueExpression><![CDATA[$F{cpuUsage}]]></yValueExpression> 
     </xySeries> 
    </xyDataset> 
    <linePlot> 
     <plot/> 
    </linePlot> 
</xyLineChart> 

público DATE_TIME_FORMAT static final String = "aaaa-dd-MM'T'HH: mm: SS.sss";
DateFormat df = new SimpleDateFormat (DATE_TIME_FORMAT); df.format ($ V {VAR_DATE})

0

Especificar el "Período de tiempo" como "minuto" en la sección 'detalles' de los detalles de la carta.

timePeriod="Minute" 

De Guía JasperReports último: Tiempo Expresión Período

Esta expresión devuelve un valor java.util.Date a partir del cual el motor extraerá el periodo de tiempo correspondiente en función del valor establecido para el atributo timePeriod mencionado anteriormente en el conjunto de datos Time Series . Por ejemplo, si el cuadro trata de datos anuales, el motor extraerá solo el año del valor de la fecha, o si es recopilando datos mensuales, el motor usará solo el valor del mes desde el objeto date devuelto por esta expresión .

Cuestiones relacionadas