Ajuda - Converter e Formatar - Calendar para sql.Date e sql.Date para Calendar

Pessoal eu sei que esse é um assunto que tem alguns tópicos aqui no GUJ, mas pesquisando não encontrei um que realmente tirasse a minha dúvida.

Vamos lá.
Tenho 2 cenários, um somente para data de nascimento e outro para data e hora:

Primeiro:

O usuário do sistema digita a data do cliente no campo que vai estar com o formato dd/MM/yy e manda salvar.
Após isso a data nesse formato é setado em um DTO, cuja o método é:

public void setDataDeNascimento(Calendar dataDeNascimento) {
this.dataDeNascimento = dataDeNascimento;
}

Depois disso o DTO manda as informações para o DAO que faz a inserção no banco, dessa maneira:

stmt.setDate(4, new java.sql.Date(dto.getDataDeNascimento().getTimeInMillis()));

Após isso eu quero o retorno de uma pesquisa com um select que está no DAO.

Estou fazendo desta maneira:

Date date = rs.getDate(4);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
dto.setDataDeNascimento(cal); // aqui o eclipse não acusa nenhum erro

Agora eu não sei se ambos estão convertendo corretamente. Por que quando vou fazer um teste dessa maneira:

Date date = rs.getDate(4);
Calendar cal = Calendar.getInstance();
cal.setTime(date);

cal = cal.getTime(); // aqui o eclipse acusa o mesmo, mesmo fazendo cast
//cal = (Calendar) cal.getTime();

O eclipse acusa erro dizendo para eu alterar o tipo Calendar cal para Date, como se o método cal.setTime não convertesse o Date para
Calendar. Com essa informação que o Eclipse me da parece que ele guarda no setTime um Date.

Fico no aguardo de uma sugestão para o meu problema, obrigado pessoal.
Se caso as sugestões para esse cenário derem certo eu tento aplicar no meu cenário 2, caso contrário posto ele aqui.

vlw!

[quote=brenes] Date date = rs.getDate(4); Calendar cal = Calendar.getInstance(); cal.setTime(date); dto.setDataDeNascimento(cal); // aqui o eclipse não acusa nenhum erro [/quote]

ele não acusa erro porque seu objeto dataDeNascimento é um Calendar

[quote=brenes] Date date = rs.getDate(4); Calendar cal = Calendar.getInstance(); cal.setTime(date); [/quote]

o que você está tentando fazer aí?
você está jogando um Date em um objeto Calendar…

o certo seria talvez

Date date = rs.getDate(4); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(date);
seuObjeto.setDataDeNascimento(cal);

Entendi, só que da uma olhada no teste que eu estou fazendo:

public static void main(String[] args) {

	Connection con = DBUtils.getDefaultConnection();
	
	ClientesDAO dao = new ClientesDAO(con);
	ClienteDTO dto = new ClienteDTO();
	
	DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
	Date date = null;
	try {
		date = (Date)formatter.parse(date.toString());
	} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} 
	
	Calendar cal = Calendar.getInstance();
	
	cal.setTime(date);
	
	
	dto.setDataDeNascimento(cal);
	
	System.out.println(dto.getDataDeNascimento());
}

}

Quando executo isso eu recebo um enorme:

NullPointerException

Exception in thread “main” java.lang.NullPointerException
at com.br.nightClubSystem.testes.TestCalendar.main(TestCalendar.java:25)

vlw