Bom dia Pessoal,
Preciso de uma ajuda para o seguinte problema:
No meu banco de dados eu tenho a coluna data de nascimento do tipo Date, e ao inserir um candidato, eu pego a String CndNascimento do POST e converto para o formato do Mysql, até aí tudo bem, a data 01/02/1990 vira 1990-02-01 certinho.
Quando vou trazer esses dados para a resposta da API, ao fazer o convert desse Date para String, ele decrementa um dia sem motivo aparente, ex.: 1990-06-12 vira 1990-06-11.
Já virei a internet e nada resolve, ja tentei simpleDateFormat, Date, formatter, nada resolve.
Preciso de ajuda para ajustar isso, segue abaixo meu metodo de inserção;
public String inserir(CandidatoForm candidatoForm) throws ParseException {
final Candidato candidato = candidatoRepository.findByNomeCandidato(candidatoForm.getCndNome(),
candidatoForm.getCndSobrenome());
if (candidato == null) {
final Candidato candidatoInsert = new Candidato();
candidatoInsert.setCndNome(candidatoForm.getCndNome());
candidatoInsert.setCndSobrenome(candidatoForm.getCndSobrenome());
candidatoInsert.setCndNascimento(DataUtil.dateToSqlDate(candidatoForm.getCndNascimento()));
candidatoInsert.setCndCpf(candidatoForm.getCndCpf());
candidatoInsert.setCndRg(candidatoForm.getCndRg());
candidatoInsert.setCndLogradouro(candidatoForm.getCndLogradouro());
candidatoInsert.setCndBairro(candidatoForm.getCndBairro());
candidatoInsert.setCndCep(candidatoForm.getCndCep());
candidatoInsert.setCndNumero(candidatoForm.getCndNumero());
candidatoInsert.setCndComplemento(candidatoForm.getCndComplemento());
candidatoInsert.setCndFone1(candidatoForm.getCndFone1());
candidatoInsert.setCndFone2(candidatoForm.getCndFone2());
candidatoInsert.setCndAtivo(candidatoForm.getCndAtivo());
candidatoInsert.setEstado(estadoService.buscarPorId(candidatoForm.getEstado()));
candidatoInsert.setCidade(cidadeService.buscarPorId(candidatoForm.getCidade()));
candidatoRepository.save(candidatoInsert);
return "Inserido";
} else {
return "Não Inserido";
}
}
E agora meu método de conversão:
public static String dateToString(Date data) {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
dateFormat.setTimeZone(TimeZone.getTimeZone("America/Sao_Paulo"));
String strDate = dateFormat.format(data);
return strDate;
}
Se eu trago a data no retorno da API mantendo o tipo Date(java.util) ele traz a data da seguinte maneira:
{
"nascimento": "1990-06-27T00:00:00.000+0000",
}
Sendo a data correta mas com essa informação de tempo desnecessária para mim.
Agradeço a todos e qualquer informação extra posso ir passando :)