Erro ao abrir relatório com parâmetros de período entre datas[RESOLVIDO]

Bem criei um relatório no Ireports que está abrindo normal no Ireports na visualização, copiei ele e coloquei na paste de relatorios no projeto Java…sendo que ao abrir a tela do relatório e digitar a data inicial e a data final e pesquisa o relatório o sistema apresenta esta aviso de erro:

image

Segue o código da classe:

    private void jbPesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                            
            // Abrir Relatorio de entradas de produto por dia.
            Connection con =  new ConnectionFactory().getConnection();
            int confirma = JOptionPane.showConfirmDialog(null, "Cofirma a impressão deste relátório?","Atenção",JOptionPane.YES_NO_OPTION);
            if(confirma == JOptionPane.YES_OPTION){
                try {
                    HashMap filtro = new HashMap();
                    DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy", Locale.FRENCH);
                    filtro.put("dtinicial",LocalDate.parse(jftDtInicial.getText(),formato));
                    filtro.put("dtfinal", LocalDate.parse(jftDtFinal.getText(),formato));
                    JasperPrint print = JasperFillManager.fillReport("C:/Users/Moisés/Documents/NetBeansProjects/ImCommerce/src/relatorio/entradadiaprod.jasper", filtro,con);
                    JasperViewer.viewReport(print,false);
                    this.dispose();
                } catch (Exception e) {
                    JOptionPane.showMessageDialog(null, e);
                }
            }
        }

Vc manda um java.time.LocalDate pro relatório e ele espera um java.util.Date. Vc tem duas opções. Ou muda dentro do relatório o tipo do parâmetro para LocalDate ou faz a conversão antes de enviar, algo assim:

LocalDate ldIni = LocalDate.parse(jftDtInicial.getText(),formato);
Date dIni = Date.from( ldIni.atStartOfDay(ZoneId.systemDefault()).toInstant() );
filtro.put("dtinicial",dIni);

Claro, vc precisa disso para as duas datas.

David blz…
ficaria dessa forma:

private void jbPesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // Abrir Relatorio de entradas de produto por grupo.
        Connection con =  new ConnectionFactory().getConnection();
        int confirma = JOptionPane.showConfirmDialog(null, "Cofirma a impressão deste relátório?","Atenção",JOptionPane.YES_NO_OPTION);
        if(confirma == JOptionPane.YES_OPTION){
            try {
                HashMap filtro = new HashMap();
                DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy", Locale.FRENCH);
                LocalDate ldIni = LocalDate.parse(jftDtInicial.getText(),formato);
                Date dIni = Date.from(ldIni.atStartOfDay(ZoneId.systemDefault()).toInstant());
                filtro.put("dtInicial",dIni);
                LocalDate ldFin = LocalDate.parse(jftDtFinal.getText(),formato);
                Date dFin = Date.from(ldFin.atStartOfDay(ZoneId.systemDefault()).toInstant());
                filtro.put("dtFinal",dFin);
                JasperPrint print = JasperFillManager.fillReport("C:/Users/Moisés/Documents/NetBeansProjects/ImCommerce/src/relatorio/entradadiaprod.jasper", filtro,con);
                JasperViewer.viewReport(print,false);
                this.dispose();
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }
        }
    }

agora apresentou este aviso:
image

Deu certo David obg…
coloquei da forma que você passou e fiz algumas alterações no relatório para não pegar somete dia, mês e ano.