Java.util.Date cannot be cast to java.sql.Date

4 respostas
J

Pessoal, estou tentando ler a data de nascimento do formulário e, antes de passar ao DAO, estou recebendo esta exception.
A formatação da data para yyyy-MM-dd é por conta do MySql.

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date

peup.web.PacienteServlet.service(PacienteServlet.java:40)

javax.servlet.http.HttpServlet.service(HttpServlet.java:847)



O código que estou gerando é este:
SimpleDateFormat formatarDate = new SimpleDateFormat("yyyy-MM-dd");

            try {
                String dtNasc = request.getParameter("nascim");
                paciente.setdtNasc((java.sql.Date) formatarDate.parse(dtNasc));
            } catch (ParseException ex) {
                ex.printStackTrace();
                throw new ServletException(ex);
            }

Alguém pode me ajudar?

4 Respostas

Ruttmann

Calma colega, acabasse de postar isso no respostas e eu acabei de te responder lá também. :stuck_out_tongue:

E inclusive te respondi com um link daqui do GUJ que certamente vai solucionar teu problema.

:wink:

J

Sorry… tinha postado no local errado.

Fiz a alteração sugerida no fórum, conforme abaixo:

SimpleDateFormat formatarDate = new SimpleDateFormat("yyyy-MM-dd");

            try {
                String dtNasc = request.getParameter("nascim");
                paciente.setdtNasc(new java.sql.Date(formatarDate.parse(dtNasc).getTime()));
            } catch (ParseException ex) {
                ex.printStackTrace();
                throw new ServletException(ex);
            }

Mas o erro agora é outro:

javax.servlet.ServletException: java.text.ParseException: Unparseable date: 10/10/1970

peup.web.PacienteServlet.service(PacienteServlet.java:45)

javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
Ruttmann

Fiz o post sem querer, ignorem.

E

jose.azanha:
Sorry… tinha postado no local errado.

Fiz a alteração sugerida no fórum, conforme abaixo:

SimpleDateFormat formatarDate = new SimpleDateFormat("yyyy-MM-dd");

            try {
                String dtNasc = request.getParameter("nascim");
                paciente.setdtNasc(new java.sql.Date(formatarDate.parse(dtNasc).getTime()));
            } catch (ParseException ex) {
                ex.printStackTrace();
                throw new ServletException(ex);
            }

Mas o erro agora é outro:

javax.servlet.ServletException: java.text.ParseException: Unparseable date: 10/10/1970

peup.web.PacienteServlet.service(PacienteServlet.java:45)

javax.servlet.http.HttpServlet.service(HttpServlet.java:847)</blockquote>

O formato da data tá errado.
Teria que ser como o informado: “yyyy-MM-dd”

Criado 18 de dezembro de 2013
Ultima resposta 18 de dez. de 2013
Respostas 4
Participantes 3