Eu construir um método sobrecarregado toString() para listar o modelo. Estou utilizando um campo de data de nascimento. Quando adiciono o campo no PostgreSQL utilizando o parseamento da Classe SimpleDateFormat funciona, mas quando tento fazer a leitura, não consigo. Segue o codigo abaixo e o erro:
@Override
public String toString() {
try {
String contatos = "\nNome: " + this.nome;
contatos += "\nEmail: " + this.email;
contatos += "\nEndereço: " + this.endereco;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date data = (Date) sdf.parse(this.dataNascimento.toString());
Calendar calendar = Calendar.getInstance();
calendar.setTime(data);
contatos += "\nData de nascimento: " + calendar.toString();
return contatos;
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
Classe de teste
import java.util.List;
import br.com.caelum.jdbc.dao.ContatoDao;
import br.com.caelum.jdbc.modelo.Contato;
public class TestaLista {
public static void main(String[] args) {
ContatoDao dao = new ContatoDao();
List<Contato> contatos = dao.getLista();
contatos.forEach((c) -> System.out.println(c.toString()));
}
}
O erro que o Java exibe para mim…
java.text.ParseException: Unparseable date: "java.util.GregorianCalendar[time=202273200000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT-03:00",offset=-10800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=1976,MONTH=4,WEEK_OF_YEAR=23,WEEK_OF_MONTH=6,DAY_OF_MONTH=30,DAY_OF_YEAR=151,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=5,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-10800000,DST_OFFSET=0]"
at java.base/java.text.DateFormat.parse(Unknown Source)
at br.com.caelum.jdbc.modelo.Contato.toString(Contato.java:65)
at br.com.caelum.jdbc.teste.TestaLista.lambda$0(TestaLista.java:13)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at br.com.caelum.jdbc.teste.TestaLista.main(TestaLista.java:13)
null
java.text.ParseException: Unparseable date: "java.util.GregorianCalendar[time=255236400000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT-03:00",offset=-10800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=1978,MONTH=1,WEEK_OF_YEAR=5,WEEK_OF_MONTH=1,DAY_OF_MONTH=2,DAY_OF_YEAR=33,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-10800000,DST_OFFSET=0]"
at java.base/java.text.DateFormat.parse(Unknown Source)
at br.com.caelum.jdbc.modelo.Contato.toString(Contato.java:65)
at br.com.caelum.jdbc.teste.TestaLista.lambda$0(TestaLista.java:13)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at br.com.caelum.jdbc.teste.TestaLista.main(TestaLista.java:13)
java.text.ParseException: Unparseable date: "java.util.GregorianCalendar[time=1132542000000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT-03:00",offset=-10800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2005,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=4,DAY_OF_MONTH=21,DAY_OF_YEAR=325,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-10800000,DST_OFFSET=0]"
at java.base/java.text.DateFormat.parse(Unknown Source)
at br.com.caelum.jdbc.modelo.Contato.toString(Contato.java:65)
at br.com.caelum.jdbc.teste.TestaLista.lambda$0(TestaLista.java:13)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at br.com.caelum.jdbc.teste.TestaLista.main(TestaLista.java:13)
null
null
Preciso de um auxilio em relação a isso. Desde já agradeço!