[Resolvido] Duvida SimpleDateFormat

7 respostas
M

olá a todos pessoal to estudando a fj21 da caelum aqui e estou fazendo um busca no banco de dados só que a data vem toda estranha nao sei usar esse SimpleDateFormat
se alguém puder me dar uma dica agradeço

segue o codigo

package br.com.caelum.jdbc.Teste;

import java.util.List;
import java.sql.SQLException;

import br.com.caelum.Modelo.Contato;
import br.com.caelum.jdbc.Dao.ContatoDao;

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 Nascimento : " +contato.getDataNascimento().getTimeInMillis());
			
		}
	}

}

e a class contadoDao

package br.com.caelum.jdbc.Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import br.com.caelum.Modelo.Contato;
import br.com.teste.ConnectionFactory;
import java.sql.Date; 
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class ContatoDao {
	
	private Connection connection;
	
	public ContatoDao() throws SQLException {
		this.connection = new ConnectionFactory().getConnection();
	}		 
	
	 public void adiciona(Contato contato ){
		 String sql = "insert into contatos (nome,email,endereco,dataNascimento)values(?,?,?,?)";
	
	 try{
		 //prepared statement para inserção	 
         PreparedStatement stmt = connection.prepareStatement(sql);
         
		 // seta os valores
		 stmt.setString(1,contato.getNome());
		 stmt.setString(2,contato.getEmail());
		 stmt.setString(3,contato.getEndereco());
		 stmt.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));
	 	 stmt.execute(); 

	 }catch(SQLException e){
	 throw new RuntimeException(e);
		 
	 }
} 	
	 public  List<Contato>getLista(){
		 
		 List<Contato> contatos = new ArrayList<Contato>();
		 try{
			 
			 PreparedStatement stmt = this.connection.prepareStatement("select * from contatos");
		     ResultSet rs = stmt.executeQuery();
		     
		     while(rs.next()){
		    //Criando o objeto Contato
		      Contato contato =  new Contato();
		      contato.setNome(rs.getString("nome"));
		      contato.setEmail(rs.getString("email"));
		      contato.setEndereco(rs.getString("endereco"));
		    
		    //montato a data atraves do calendar
		      Calendar data = Calendar.getInstance();
		      data.setTime(rs.getDate("dataNascimento"));
		      contato.setDataNascimento(data);
		    
		    // adicionando o objeto a lista
		   
			  contatos.add(contato);
		     
		    }
		    rs.close();
	        stmt.close();
		 }catch(SQLException e){
			 throw new RuntimeException(e);
		 }
		
		 return contatos;
	 }
}

7 Respostas

denislima

Tae…

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

System.out.println(sdf.format(contato.getDataNascimento().getTime()));

fallows

jhonystein

Meu caro a forma mais simples de usar o SimpleDateFormat:

SimpledateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
System.out.println("Data Nascimento : " + sdf.format(contato.getDataNascimento()));
renanreismartins

deve ter só um trilhao de topicos aqui mesmo no guj sobre o assunto.

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

http://www.guj.com.br/search?cx=partner-pub-9448585618971060%3A4001950301&cof=FORID%3A10&ie=UTF-8&q=simpledateformat&x=0&y=0&siteurl=www.guj.com.br%2Fjava%2F125078-formatacao-usando-simpledateformat-para-hora-#933

com esses 2 links qq um fica ninja no SimpleDateFormat

denislima

jhonystein:
Meu caro a forma mais simples de usar o SimpleDateFormat:

SimpledateFormat sdf = new SimpleDateFormat(“dd/MM/yyyy”);
System.out.println("Data Nascimento : " + sdf.format(contato.getDataNascimento()));

eae jhony…
cara o getDataNascimento() dele retorna um Calendar. Entao precisa da um getTime() no retorno do metodo para assim passar um Date como argumento para o metodo format do SimpleDateFormat… senao vai toma um IllegalArgumentException

fallows

M

ok deu certo obrigado a todos

jhonystein

denislima:
jhonystein:
Meu caro a forma mais simples de usar o SimpleDateFormat:

SimpledateFormat sdf = new SimpleDateFormat(“dd/MM/yyyy”);
System.out.println("Data Nascimento : " + sdf.format(contato.getDataNascimento()));

eae jhony…
cara o getDataNascimento() dele retorna um Calendar. Entao precisa da um getTime() no retorno do metodo para assim passar um Date como argumento para o metodo format do SimpleDateFormat… senao vai toma um IllegalArgumentException

fallows

Correto denislima… não me ative a este detalhe…

B
Conforme está escrito acima, só faltou o getTime() ficando assim:
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
			System.out.println("Data Nascimento : "
					+ sdf.format(contato.getDataNascimento().getTime()));
Criado 17 de fevereiro de 2011
Ultima resposta 1 de jul. de 2012
Respostas 7
Participantes 5