2
I am setting up a register where I pass a date and, when saving, is showing this error:
java.text.ParseException: Unparseable date: "2017-10-30T02:00:00.000Z"
at java.text.DateFormat.parse(Unknown Source) ~[na:1.8.0_144]
at controller.saude.PacientesController.cadastrarPacientes(PacientesController.java:77) ~[classes/:na]
My save method:
@RequestMapping(method = RequestMethod.POST, value = "/pacientes")
public HttpStatus cadastrarPacientes(@RequestBody ObjectNode json) throws ParseException {
SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
Entidades entidades = new Entidades();
entidades.setIdEntidade(json.get("pessoa").get("entidade").get("idEntidade").asLong());
Pessoas pessoas = new Pessoas();
pessoas.setNome(json.get("pessoa").get("nome").textValue());
pessoas.setNomeSocial(json.get("pessoa").get("nomeSocial").textValue());
pessoas.setFoto(json.get("pessoa").get("foto").textValue());
pessoas.setNomeSocial(json.get("pessoa").get("nomePai").textValue());
pessoas.setNomeMae(json.get("pessoa").get("nomeMae").textValue());
pessoas.setDataNascimento(formato.parse(json.get("pessoa").get("dataNascimento").textValue()));
pessoas.setEntidade(new Entidades());
pessoas.setEntidade(entidades);
pessoas.setTipoPessoa(json.get("pessoa").get("tipoPessoa").textValue());
}
HTML and Angular use on the front end:
<div class="form-group col-md-3">
<label>Data Nascimento :</label> <input name="data" id="data" type="date" class="form-control" ng-model="paciente.pessoa.dataNascimento" format-date />
</div>
And I’m using that directive:
app.directive("formatDate", function() {
return {
require: 'ngModel',
link: function(scope, elem, attr, modelCtrl) {
modelCtrl.$formatters.push(function(modelValue) {
if (modelValue){
return new Date(modelValue);
}
else {
return null;
}
});
}
};
});
The JSON that is coming in the backend is like this:
{
"pessoa": {
"nome": "aa",
"nomeSocial": "aa",
"dataNascimento": "2017-10-30T02:00:00.000Z",
"tipoPessoa": "F",
"entidade": {
"idEntidade": "1"
},
"nomeMae": "a"
}
}