Pegar data no data no banco e formatar

7 respostas
D

boa tarde pessoal, naum estou conseguindo formatar a data q eu pego no mysql, o codigo abaixo falha ao tentar converter o simpledateformat em um dataUtil, nao localizei outra maneira

public Contato getContatoId(long id){
			String sql="select * from contato where id=?";
			try{
				Contato contato=new Contato();
				PreparedStatement ps=connection.prepareStatement(sql);
				ps.setLong(1, id);
				ResultSet rs=ps.executeQuery();
				
				while(rs.next()){
				
				contato.setId(rs.getLong("id"));
				contato.setNome(rs.getString("nome"));
				contato.setEmail(rs.getString("email"));
				contato.setEndereco(rs.getString("endereco"));
				
				Date date=rs.getDate("dataNascimento");
				SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
				String dataTexto=sdf.format(date);
				java.util.Date dataUtil=new java.util.Date();
				
				try {
					dataUtil=new SimpleDateFormat("dd/MM/yyyy").parse(dataTexto);
				} catch (ParseException e) {
					System.out.println("deu erro na dao"+e);
				}
				
				
				Calendar data=Calendar.getInstance();
				data.setTime(dataUtil);
				
				contato.setDataNascimento(data);
				}
				
				ps.close();
				rs.close();

				return contato;
				
			}catch(SQLException e){
				throw new RuntimeException(e);
			}
		}

essa é a data q esta sendo impressa

java.util.GregorianCalendar[time=1299369600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2011,MONTH=2,WEEK_OF_YEAR=10,WEEK_OF_MONTH=1,DAY_OF_MONTH=6,DAY_OF_YEAR=65,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=0]

7 Respostas

Scoobydoo

Desculpa mas você esta tentando colocar uma data nesse padrão dd/MM/yyyy dentro de um Java.Util.Date…
Realmente não vai funcionar,porque o padrão do Java Util Date não é assim…
Tente fazer isso…

java.util.Date dataUtil=new java.util.Date(dataTexto);
drigo.angelo

Que erro esta dando?

Onde voce ta imprimindo essa data?

drigo.angelo

Acho que o problema e que o simpleDateFormat espera um java.util.date e voce passa um java.sql.date

Isso não deveria dar problema, pois java.sql.Date extende java.util.Date… v-v

drigo.angelo

Por favor, não faça isso:

}catch(SQLException e){ throw new RuntimeException(e); }

D

Scoobydoo, fiz da forma q vc falou porem continua retornando a data no mesmo formato do inicio do post

drigo.angelo, to inprimindo em um jsp que recebe esses dados direto do banco e manda devolta para o banco com as alteracoes

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
 <%@taglib uri="/struts-tags" prefix="s" %>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
 
<c:import url="cabecalho.jsp" />

	<h3>Alterar contato - ${contato.id }</h3>
	<s:form action="alteraContato" method="post">
	
	<input type="hidden" name="contato.id" value="${contato.id}" />
	
	<h3>Preencha os dados abaixo para que o contato seja alterado.</h3>
	<s:textfield label="Nome" name="contato.nome"/>
	<s:textfield label="Email" name="contato.email"/>
	<s:textfield label="Endereco" name="contato.endereco"/>
	<s:textfield label="Data de Nacimento" name="contato.dataNascimento"/>
	<s:submit value="gravar alteração"/>
		
	</s:form>
	
<c:import url="rodape.jsp" />
drigo.angelo

posta o get/setDataNascimento do contato…

Objetos do tipo Date não possuem formato (na verdade o que representa a data mesmo é um número o0 )

é meio desnecessário aquelas voltas todas que voce deu. Ficaria mais ou menos assim:

[...] Date dataNasc = rs.getDate("dataNascimento"); //Supondo que date seja do tipo java.sql.Date contato.setDataNascimento(dataNasc); [...]

no setData… :

public void setDatataNascimento(java.util.Date d){ dataNascimento = d; }

e no getData…

public String getDataNascimento(){ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); return = sdf.format(date); }

D

drigo.angelo, resolveu meu problema, valeu msm heim :slight_smile:

Criado 8 de março de 2011
Ultima resposta 8 de mar. de 2011
Respostas 7
Participantes 3