Simple Date Format

Pessoal preciso de uma ajuda de voces, seguinte:

Preciso formatar uma data do banco de dados e listar ela formatada. Minha entity possui atributos do tipo date e como para utilizar o Simple date format preciso de uma string, criei uma classe com meus atributos do tipo string. Recebo uma lista, onde dvo formatar e retornar, mas não esta dando certo.
Abaixo minha classe comos atributos String:

public class VoM2 {

	private Integer id = null;
	protected String datam2 = "";
	private String pminimo = "";
	private String pobjetivo = "";
	private Boolean valido = null;
		
	
	public VoM2() {
		
	}


	public Integer getId() {
		return id;
	}


	public void setId(Integer id) {
		this.id = id;
	}


	public String getDatam2() {
		return datam2;
	}


	public void setDatam2(String datam2) {
		this.datam2 = datam2;
	}


	public String getPminimo() {
		return pminimo;
	}


	public void setPminimo(String pminimo) {
		this.pminimo = pminimo;
	}


	public String getPobjetivo() {
		return pobjetivo;
	}


	public void setPobjetivo(String pobjetivo) {
		this.pobjetivo = pobjetivo;
	}


	public Boolean getValido() {
		return valido;
	}


	public void setValido(Boolean valido) {
		this.valido = valido;
	}	
	
}

Abaixo meu metodo para formatar a data:

List<M2> m2List = new ArrayList<M2>();
List<VoM2> form2 = new ArrayList<VoM2>();

public void Format(VoM2 form2,M2 m2List ) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
		
		Date datam2 = null;
		try{
			datam2 = (Date) dateFormat.parse(form2.datam2);
			}catch(ParseException e){
			e.printStackTrace();
		}
			m2List.setDatam2(datam2);
	}

E ae…

Nesse método que você postou…

Você está parseando (criando) um objeto Date e não formatando.

Realmente vc não esta formantando, vc não usou o .format(data);

eu aconselharia vc a fazer a formatação dentro do vo.
Um get dando somente o return

SimpleDateForma formato = new SimpleDateFormat(“dd/MM/yyyy”);

private Date data = null;

public Date getData(){
return data
}

public Date getData(Date d){
this.data = d;
}

public getDataFormatada() {
return formato.format(data);
}

Rogerio, eu fiz o que você sugeriu mas não deu certo…
Tem mais alguma sugestào?

Obrigada
juliana

Juliana qual o erro q ta dando?

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = df.parse(data1);
Date date2 = df.parse(data2);

Deesa forma é pra dar certo.

vlwww! :lol:

Tem que ver como está a formatação de sua data, veja que no meu caso eu estou usando “yyyy-MM-dd”.

Oi,

No banco esta no formato “yyyy/MM/dd HH:mm:ss.S”, e tenho que formatar para “dd/MM/yyyy” para listar as informaçoes
Nãodá erro algum apenas não esta formatando.
Estava utilizando o código acima e depois fiz o que o rogerio sugeriu mas também não deu certo.

Obrigada

public void Format(VoM2 m2vo,M2 m2List ) {
		SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
		
		java.util.Date datam2 = null;
		
		try{
			datam2 = df.parse(m2vo.datam2);
			}catch(ParseException e){
			e.printStackTrace();
		}
			m2List.setDatam2(datam2);
	}
public class VoM2 {

	private Integer id = null;
	protected String datam2 = "";
	private String pminimo = "";
	private String pobjetivo = "";
	private Boolean valido = null;
		
	
	public VoM2() {
		
	}	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getDatam2() {
		return datam2;
	}

	public void setDatam2(String datam2) {
		this.datam2 = datam2;
	}

	public String getPminimo() {
		return pminimo;
	}

	public void setPminimo(String pminimo) {
		this.pminimo = pminimo;
	}

	public String getPobjetivo() {
		return pobjetivo;
	}

	public void setPobjetivo(String pobjetivo) {
		this.pobjetivo = pobjetivo;
	}

	public Boolean getValido() {
		return valido;
	}

	public void setValido(Boolean valido) {
		this.valido = valido;
	}
	
}

Bom. Tentando te ajudar sei que pra formatar data fica simples.
Lá em cima você esta fazendo um cast pra Date para funcionar, o resto outros já disseram.

//Nome classe

.. main(String véiaLoka[]){
   Date data = new Date();
   String dataString = "dd/MM/yyyy";

   SimpleDateFormat spd = new SimpleDateFormat(dataString);
   
   System.out.println("Data de hoje: "+spd.format(data));
}

Dessa forma com certeza vai funcionar.
Crie um método sei lá que receba a data como parâmetro e a retorne formatada como mostrei.

...
return spd.format(data);

Espero ter ajudado.

Se o dado já está cadastrado no banco de dados, seria melhor que você deixasse essa formatação com o banco de dados na rotina do seu SELECT

Todos os BDs tem algo para saida formatada

Agora caso este dado cenha da sua aplicação e você apenas deseje ver se ela veio correta, faça do jeito que o amigo edu_fernandes expos, porém o parseamento solta a exceção ParseException que ajudará você a tratar possiveis erros de formatação vidas de um possivel usuario

Para evitar os métodos deprecados da classe Date:

		GregorianCalendar gc = new GregorianCalendar();
		gc.setTime( new Date() );
		int qtdDiasPraSomar = 10;
		gc.add( Calendar.DAY_OF_MONTH, qtdDiasPraSomar );
		SimpleDateFormat dataFormatada = new SimpleDateFormat( "yyyy-MM-dd" );
		
		System.out.println( dataFormatada.format( gc.getTime() ) );

Consegui fazer assim para formatar da data que buscava no Banco no formato "yyyy/MM/dd, transformando-a para o formato desejado “dd/MM/yyyy”.

Assim:


import java.text.SimpleDateFormat;
import java.util.Date;

public class Usuario{

    private Date data;

    public Usuario(){
          
         data = new Date();
    }

    public String getDataFormatada() {
        SimpleDateFormat formatado = new SimpleDateFormat("dd/MM/yyyy");
        String dataFormat = formatado.format(data);
        return dataFormat;
    }

    public Date getData() {
        return data;
    }
    public void setData(Date data) {
        this.data = data;
    }

}

Espero ter ajudado, caso tenha conseguido resolver, por favor, renomei o tópico como [RESOLVIDO], só assim outras pessoas pode consultar as dicas com firmeza.

Valeu!