Java - pprque sale este error, cannot format given Object as a Date en java?

 
Vista:
sin imagen de perfil
Val: 20
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

pprque sale este error, cannot format given Object as a Date en java?

Publicado por fanny (16 intervenciones) el 06/03/2018 00:31:23
Tengo el siguiente metodo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public List<String> llenaDiasAnioMes() {
 
        Date date = null;
        List<String> lDias = new ArrayList<>();
        for (Integer i = 1; i <= this.getLongitudMes(); i++) {
 
            String fechaActual = i.toString() + "-" +mes.toString() + "-"+annio.toString();
            lDias.add(fechaActual);
 
            DateFormat inputFormat = new SimpleDateFormat("dd-MM-yyyy");
            String fechaString = lDias.toString();
 
 
            System.out.println("PRUBA LISTA" +fechaString);
 
 
 
 
            try {
                date = inputFormat.parse(fechaString);
                System.out.println("PRUEBA DATE\n" +date);
            } catch (ParseException ex) {
                Logger.getLogger(RegistroAccesoComponentImpl.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
 
        return lDias;
 
    }

le paso a mi lista los dias, el mes y el anio,
el mes y el anio, los obtengo de esta manera
1
2
3
4
5
6
7
 // Obtienes el mes actual
        mes = LocalDate.now().getMonth().getValue();
 
 
        //Se obtiene el año actual
        Year año = Year.now();
        annio = año.getValue();

Ahora, tengo la siguiente tabla
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<p:dataTable  id="detalle" var="detalle"  styleClass="columns"  value="#{RegistroAccesoComponent.incidenciaAnioMesDet}" emptyMessage="No se encontraron registros.">
 
                            <p:columnGroup type="header">
                                <p:row>
 
                                    <p:column headerText="FECHA" style="width:20px;" styleClass="columns"/>
                                    <p:column headerText="ENTRADA" style="width:20px;" styleClass="columns"/>
                                    <p:column headerText="SALIDA" style="width:20px;" styleClass="columns"/>
                                    <p:column headerText="INCIDENCIA" style="width:60px;" styleClass="columns"/>
                                    <p:column  headerText="ACCION" style="width:10px;" styleClass="columns"/>
                                </p:row>
                            </p:columnGroup>
                            <p:column  styleClass="columns">
                               <h:outputText value="#{RegistroAccesoComponent.llenaDiasAnioMes()}" >
                                   <f:convertDateTime   pattern="dd-MM-yyyy" />
                                </h:outputText>
                            </p:column>
 
                            <p:column  styleClass="columns">
                                <h:outputText value="#{detalle.horaEntrada}" >
                                    <f:convertDateTime type="date" timeZone="CST" pattern="HH:mm:ss"/>
                                </h:outputText>
 
                            </p:column>
                            <p:column styleClass="columns">
                                <h:outputText value="#{detalle.horaSalida}" >
                                    <f:convertDateTime type="date" timeZone="CST" pattern="HH:mm:ss"/>
                                </h:outputText>
                            </p:column>
                            <p:column styleClass="columns">
                                <h:outputText value="#{detalle.incidencias.cveIdIncidencia}  #{detalle.incidencias.concepto}" />
                            </p:column>
                            <p:column  styleClass="columns">
                                <p:commandButton  icon="ui-icon-search" title="View" onclick="PF('modalIntentos').show();">
                                </p:commandButton>
                            </p:column>
                        </p:dataTable>


lo que quiero es que en mi columna de fecha, se pinten los dias del mes correspondiente de la siguiente manera

ejemplo

pero me sale el siguiente error en consola

java.text.ParseException: Unparseable date: "[1-3-2018, 2-3-2018, 3-3-2018, 4-3-2018, 5-3-2018, 6-3-2018, 7-3-2018, 8-3-2018, 9-3-2018, 10-3-2018, 11-3-2018, 12-3-2018, 13-3-2018, 14-3-2018, 15-3-2018, 16-3-2018, 17-3-2018, 18-3-2018, 19-3-2018, 20-3-2018, 21-3-2018, 22-3-2018, 23-3-2018, 24-3-2018, 25-3-2018, 26-3-2018, 27-3-2018, 28-3-2018, 29-3-2018, 30-3-2018]"

Could not convert to String
y me manda el error en esta linea del metodo
date = inputFormat.parse(fechaString);

como le puedo hacer para mostrar bien la fecha de esa manera?
o como mas puedo hacer la conversion?

como
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

pprque sale este error, cannot format given Object as a Date en java?

Publicado por Andrés (340 intervenciones) el 06/03/2018 04:34:10
El bloque:


try {
date = inputFormat.parse(fechaString);
System.out.println("PRUEBA DATE\n" +date);
} catch (ParseException ex) {
Logger.getLogger(RegistroAccesoComponentImpl.class.getName()).log(Level.SEVERE, null, ex);
}


está de más, antes de este bloque ya se agregó a lDias la fecha. Además este bloque no es la causa del error, por el try catch no afecta, digamos que en este bloque la excepción no importa.

El problema que veo es el listado de fechas en la columan de la tabla, el error:


java.text.ParseException: Unparseable date: "[1-3-2018, 2-3-2018, 3-3-2018, 4-3-2018, 5-3-2018, 6-3-2018, 7-3-2018, 8-3-2018, 9-3-2018, 10-3-2018, 11-3-2018, 12-3-2018, 13-3-2018, 14-3-2018, 15-3-2018, 16-3-2018, 17-3-2018, 18-3-2018, 19-3-2018, 20-3-2018, 21-3-2018, 22-3-2018, 23-3-2018, 24-3-2018, 25-3-2018, 26-3-2018, 27-3-2018, 28-3-2018, 29-3-2018, 30-3-2018]"


se da porque el valor de esta propiedad contiene un listado de fechas. no una sola fecha

La idea es algo así como agregar un solo campo fecha a las propiedades del bean actual, si no hay propiedades, el bean solo contiene el campo fecha. El con que le veo es si en un mes solo hay una fecha, es decir un bean con datos, aún así tendrías que agregar el restante para los beans que no contienen campos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 20
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

pprque sale este error, cannot format given Object as a Date en java?

Publicado por fanny (16 intervenciones) el 06/03/2018 16:49:19
Hola @Andres , cheque la documentacion para utilizar el <f:convertDateTime type="date" pattern="dd/MM/yyyy"/>
y en mi value tengo que poner un tipo de dato Date para que lo pueda mostrar asi, entonces pues en la llamada de la vista quedo asi, que manda a llamar al date de mi metodo
1
2
3
4
5
<p:column  styleClass="columns">
                                <h:outputText value="#{RegistroAccesoComponent.date}" >
                                   <f:convertDateTime  type="date" pattern="dd/MM/yyyy"/>
                                </h:outputText>
                            </p:column>

y pase lo que tenia en mi metodo, a un
metodo init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
List<String> lDias = new ArrayList<>();
        for (Integer i = 1; i <= this.getLongitudMes(); i++) {
 
            String fechaActual = i.toString() + "-" +mes.toString() + "-"+annio.toString();
            lDias.add(fechaActual);
 
            DateFormat inputFormat = new SimpleDateFormat("dd-MM-yyyy");
            String fechaString = String.join(", ", lDias);
 
            System.out.println("PRUBAA LIST\n" +fechaString);
 
 
            try {
                date = inputFormat.parse(fechaString);
                System.out.println("PRUEBA DATEe\n" +date);
            } catch (ParseException ex) {
                Logger.getLogger(RegistroAccesoComponentImpl.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

pero lo que hace es solo mostrar el primer dia 01/03/2018
como puedo hacer para mostrar todos los dias?
trate de cambiar mi variable date, a un List<Date> date, pero truena
en esta linea date = inputFormat.parse(fechaString);
y trate de hacer esto date = (List<Date>) inputFormat.parse(fechaString);, pero sale un error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar