[Resolvido] Problema com SimpleDateFormat na classe DAO

3 respostas
M

Olá gente, estou tentando pegar uma data no banco e passar para o formato (dd/MM/yyyy)…

//Estabelecendo o formato que quero			
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");		
//pegando os dados e jogando para uma String, se eu mandar imprimir a String, imprime no 
    // formato que quero		
    String s = sdf.format(resultado.getDate("dataNascimento"));


        java.util.Date d = new java.util.Date();
	//Aqui começa o problema, quando jogo para a variável d, ele perde o formato e fica no  
            //formato  Tue Jan 14 00:00:00 GMT-03:00 2014
           d = sdf.parse(s);
			
			System.out.println(d);
			
			Calendar data = Calendar.getInstance();
			data.setTime(d);
							
			contato.setDataNascimento(data);
			contatos.add(contato);

3 Respostas

L

Você recupera a data, transforma ela em string e depois usa essa mesma string para criar um novo objeto data. Contudo a String que você está recuperando possui apenas a data, ela ignora qualquer outra informação contida no objeto. Ao usar essa string contendo apenas a data você cria um objeto sem hora, minutos e segundos e é por isso que ao imprimir o objeto Date você tem esse formato. vamos dar uma lida na doc da implementação do método toString() da classe Date

Agora se você quer que ele exiba também a hora e data você terá que usar um pattern diferente no seu SimpleDateFormat e Não há como mudar a forma como o objeto Date imprime seus valores, logo você terá que usar SimpleDateFormat sempre que quiser imprimir a data no formato que você deseja.

M

Acabei desistindo e optei por colocar uma TagLib no jsp… caso alguém precise, ficou assim:

Na classe dao:

Calendar data = Calendar.getInstance();				
				data.setTime(resultado.getDate("dataNascimento"));
			
			contato.setDataNascimento(data);
			contatos.add(contato);

no JSP: fmt:formatDate value="<%=contato.getDataNascimento().getTime()%>" pattern=“dd/MM/yyyy”

L

use expression language ao invés de digitar código java de forma direta em um JSP

E btw, formatDate foi criada justamente pra isso e usa SimpleDateFormat debaixo dos panos :wink:

Criado 28 de maio de 2016
Ultima resposta 28 de mai. de 2016
Respostas 3
Participantes 2