Vixi tive problemas com isso tbm , nao entendi mto bem o resultado que vc espera, mas talvez seja como o meu problema,criei um conversor customizado, segue o codigo:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
public class DateConverter implements Converter {
@Override
public Object getAsObject(FacesContext fc, UIComponent ui, String value) {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date data = null;
try {
data = df.parse(value);
} catch (ParseException e) {
e.printStackTrace();
}
return data;
}
@Override
public String getAsString(FacesContext fc, UIComponent ui, Object value) {
try {
DateFormat newStyle = new SimpleDateFormat("dd/MM/yyyy");
if (value != null && !value.toString().trim().isEmpty()) {
DateFormat df = new SimpleDateFormat(
"E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
Date data = df.parse(value.toString().trim());
String formatedDate = newStyle.format(data);
return formatedDate;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
Boa tarde, não sei muito bem desta forma de fazer a conversão de datas porém vi em um tópico que vc utiliza tbm o primefaces e o p:calendar funciona bem e pode ser uma solução
[quote=lgweb]Vixi tive problemas com isso tbm , nao entendi mto bem o resultado que vc espera, mas talvez seja como o meu problema,criei um conversor customizado, segue o codigo:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
public class DateConverter implements Converter {
@Override
public Object getAsObject(FacesContext fc, UIComponent ui, String value) {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date data = null;
try {
data = df.parse(value);
} catch (ParseException e) {
e.printStackTrace();
}
return data;
}
@Override
public String getAsString(FacesContext fc, UIComponent ui, Object value) {
try {
DateFormat newStyle = new SimpleDateFormat("dd/MM/yyyy");
if (value != null && !value.toString().trim().isEmpty()) {
DateFormat df = new SimpleDateFormat(
"E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
Date data = df.parse(value.toString().trim());
String formatedDate = newStyle.format(data);
return formatedDate;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
[/quote]
É o que eu quero é só impimir uma data no formato : dd/MM/yyyy
só que o meu : <f:convertDateTime nnão funciona …
imprime a data assim : Wed Mar 07 15:28:29 BRT 2012
Interessante a sua solução. Pro meu caso é uma Bazuca pra matar um mosquito. Mas legal !
E como vc faz para o converter a ser chamado seja esse que vc criou e nao o padrão ? Como que ficou no seu xhtml / jsf ? >
É …
Valeu lgweb … assim funcionou !
Mas nossa que enpenho né !
Tinha feito um método estático que convertia a data em String :
/**
* Formata uma data com um pattern dd/MM/yyyy.
*
* @param data
* @param pattern
* @return
*/
public static String formataData(Date data) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
return simpleDateFormat.format(data);
}
Vc poderia setar a data na variável do input assim que iniciar o seu bean e então colocar ele como readOnly = “true” mas enfim, se arrumou do seu jeito melhor ainda e até da menos trabalho! Até porque forma de fazer existe N