Ajuda em extrair do banco de dados um dado que é Calendar e imprimir com data formatada

Olá pessoal, é o meu primeiro post aqui no fórum então me desculpe se tiver algum erro. Estou com problema para resolver um exercício da apostila FJ21 da Caelum. Eu já pesquisei em vários lugares como formatar a data q vem do Calendar para imprimir mas não consegui resolver. Alguém poderia me ajudar? Aqui estão meus códigos das classes “TestaLista” e “ContatoDAO”.

[code]public class TestaLista {

public static void main(String[] args) throws SQLException {
	
	ContatoDAO dao = new ContatoDAO();
	List<Contato> contatos = dao.getLista();
	for (Contato contato: contatos){
		System.out.println("Nome: " + contato.getNome());
		System.out.println("Email: " + contato.getEmail());
		System.out.println("Endereço: " + contato.getEndereco());
		System.out.println("Data de Nascimento: " + 
				contato.getDataNascimento().getTime() + "\n");
	}
}

}[/code]

[code]public List getLista(){
try {
List contatos = new ArrayList();
PreparedStatement stmt = connection.prepareStatement(“select * from contatos”);
ResultSet rs = stmt.executeQuery();

		while (rs.next()){
			Contato contato = new Contato();
			contato.setId(rs.getLong("id"));
			contato.setNome(rs.getString("nome"));
			contato.setEmail(rs.getString("email"));
			contato.setEndereco(rs.getString("endereco"));
			
			Calendar data = Calendar.getInstance();
			data.setTime(rs.getDate("dataNascimento"));
			contato.setDataNascimento(data);
			
			contatos.add(contato);
		}
		rs.close();
		stmt.close();
		return contatos;
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

[/code]

Na hora do System.out.println("Data de Nascimento: ")… gostaria q imprimisse “dd/MM/yyyy” por exemplo.

Desde já agradeço.

Pessoal eu vi q tem um problema igualzinho aqui no forum mas não to conseguindo executa oq o amigo renatosm falou…

se eu boto o metodo formataData() na classe TestaLista, o programa não reconhece o “data”…se eu boto o metodo formataData() na classe ContatoDAO, a main não encontra o método formataData…

Pelo que entendi você definiu esse método formataData na classe ContatoDao, então é apenas você chamar ele dentro do método main através do objeto que você criou:

dao.formataData(contato.getDataNascimento().getTime());

Mas para ficar melhor ,você deveria criar uma classe que agrupe métodos como esse,ao invés de fazer esse formatação direto no seu DAO,exemplo:

public class Util{
   public static String formataData(Calendar data){
   //seu código
   }
}

E no método main chamar esse código:

Util.formataData(contato.getDataNascimento().getTime());

Eu fiz o que vc falou sobre a classe Util e na main ficou…

ContatoDAO dao = new ContatoDAO(); List<Contato> contatos = dao.getLista(); for (Contato contato: contatos){ System.out.println("Nome: " + contato.getNome()); System.out.println("Email: " + contato.getEmail()); System.out.println("Endereço: " + contato.getEndereco()); ; System.out.println("Data de Nascimento: " + Util.formataData(contato.getDataNascimento().getTime())); }
Depois disso continuou com um erro, segui um dos fix que o Eclipse recomendou que era de em vez do método ser public static String formataData(Calendar data), colocar public static String formataData(Date data)… Nao entendi mto bem o pq da troca do Calendar pro Date, mas funcionou corretamente.

Mto obrigado Ramon!!