Bom dia!
Estou desenvolvendo um sistema me utilizando do spring boot + jackson (para o JSON) e o problema que estou enfrentando é que o toda vez que manda uma data, sai do front end corretamente e quando chega no server perde um dia.
Por exemplo: insiro o dia 31/01/2003, quando chega no servidor a data vira 30/01/2003.
Eu envio a data assim:
//Método que formata a data enviar para o servidor
function formatDate(dateValue){
return $.datepicker.formatDate('dd/mm/yy', dateValue);
}
function salvarFuncionario(){
console.log("Aki um antes de salvar!");
var data = {
nome : $("#funcionario_nome").val(),
codigo : $("#codigo_aux").val(),
rg : $("#funcionario_rg").val(),
rgUF : $("#funcionario_rguf").val(),
rgEmissor : $("#funcionario_rgemissor").val(),
//rgDataEmissao : $("#funcionario_rgdataemissao").val(),
rgDataEmissao : formatDate($("#funcionario_rgdataemissao").datepicker('getDate')),
cpf : $("#funcionario_cpf").val(),
dataNascimento : formatDate($("#funcionario_datanascimento").datepicker('getDate')),
sexo : $("#funcionario_sexo").val(),
estadoCivil : $("#funcionario_estadocivil").val(),
conjuge : $("#funcionario_conjuge").val(),
cidadeNasc : $("#funcionario_cidadenasc").val(),
ufNascimento : $("#funcionario_ufnascimento").val(),
paisNasc : $("#funcionario_paisnasc").val(),
mae : $("#funcionario_mae").val(),
pai : $("#funcionario_pai").val(),
rua : $("#funcionario_rua").val(),
numRua : $("#funcionario_numrua").val(),
bairro : $("#funcionario_bairro").val(),
cidadeRes : $("#funcionario_cidaderes").val(),
ufRes : $("#funcionario_ufres").val()
};
console.log("Antes do DATA");
console.log(data);
// DO POST
$.ajax({
type : "POST",
contentType : "application/json",
url : "funcionarioSaveJson",
data : JSON.stringify(data),
dataType : 'json',
success : function(result) {
if(result.status == "Done"){
$("#msg").html("<p style='background-color:#7FA7B0; color:white; padding:20px 20px 20px 20px'>" +
"Post Successfully! <br>" +
"---> Customer's Info: FirstName = " +
result.data.firstname + " ,LastName = " + result.data.lastname + "</p>");
}else{
$("#msg").html("<strong>Error</strong><br>" +
result + "<br>" + data);
}
console.log(data);
console.log(result);
$("#msg").dialog("open");
},
error : function(e) {
$("#msg").text("<strong>Error in error</strong><br>" + e);
$("#div-funcionario-msg").dialog("open");
console.log("ERROR: ", e);
}
});
/** $("#frm-funcionario-add").submit();
$("#div-funcionario-add").dialog("close"); **/
}
E recebo no servidor assim:
@RequestMapping(value=path+ "SaveJson", method=RequestMethod.POST)
public @ResponseBody Funcionario saveJson(@RequestBody @Valid Funcionario funcionario) {
funcionario = repository.save(funcionario);
return funcionario;
}
Ouvi dizer que deveria mudar a declaração dos atributos no servidor, então fiz isso (sem efeito nenhum):
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd/MM/yyyy", timezone="GMT")
@Column(name="rg_data_emi")
@Temporal(TemporalType.DATE)
private Date rgDataEmissao;
Grato por qualquer ajuda que possam me dar!