Eu recebo uma data de um formulário, e converto ela pra poder salvar no meu banco no postgres, só que sempre salva com a data de 1969-12-31. Se alguém puder me dar um norte onde eu tô errando.
Meu código
//Abaixo se encontra o meu formulário, nele eu coloco a data de nascimento
<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:adm="http://github.com/adminfaces"
template="/WEB-INF/templates/template.xhtml">
<ui:define name="head">
</ui:define>
<ui:define name="title">
Cadastro de pessoa
</ui:define>
<ui:define name="body">
<h:form id="cadastroPessoa">
<div class="ui-g-12">
<p:outputLabel for="datanascimento" value="Data de nascimento:*"/>
</div>
<div class="ui-g-12">
<p:inputMask id="datanascimento" mask="99/99/9999"/>
</div>
</h:form>
</ui:define>
</ui:composition>
//Aqui está o meu managed bean, onde eu recebo a data, e preparo ela no formato aceito pelo postgres, e salvo no atributo
public void salvarPessoa() {
Pessoa pessoa = new Pessoa();
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
String datanascimento =request.getParameter("cadastroPessoa:datanascimento");
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date dataNasc = dateFormat.parse(datanascimento);
pessoa.setDataNasc(dataNasc);
}
//Esse é o meu método DAO, que salva no banco
public void CadastrarUsuario(Pessoa a) {
Connection con = Conexao.getConnection();
PreparedStatement stmt = null;
try {
String sql = "INSERT INTO pessoa (datanascimento) VALUES(?)";
stmt = con.prepareStatement(sql, stmt.RETURN_GENERATED_KEYS);
stmt.setDate(1, new java.sql.Date(a.getDataNasc().getDate()));
final ResultSet rs = stmt.getGeneratedKeys();
if (rs.next()) {
a.setUltimaId(rs.getInt(1));
ultimaId = a.getUltimaId();
}
} catch (SQLException ex) {
System.out.println(ex);
} finally {
Conexao.closeConnection(con, stmt);
}
}
O que eu não entendo, é em que ponto ele perde a data que veio no formulário, e salva como 1996-12-31