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);
}
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.
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.
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
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.