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:
importjava.text.DateFormat;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Locale;importjavax.faces.component.UIComponent;importjavax.faces.context.FacesContext;importjavax.faces.convert.Converter;publicclassDateConverterimplementsConverter{@OverridepublicObjectgetAsObject(FacesContextfc,UIComponentui,Stringvalue){DateFormatdf=newSimpleDateFormat("dd/MM/yyyy");Datedata=null;try{data=df.parse(value);}catch(ParseExceptione){e.printStackTrace();}returndata;}@OverridepublicStringgetAsString(FacesContextfc,UIComponentui,Objectvalue){try{DateFormatnewStyle=newSimpleDateFormat("dd/MM/yyyy");if(value!=null&&!value.toString().trim().isEmpty()){DateFormatdf=newSimpleDateFormat("E MMM dd HH:mm:ss z yyyy",Locale.ENGLISH);Datedata=df.parse(value.toString().trim());StringformatedDate=newStyle.format(data);returnformatedDate;}}catch(Exceptione){e.printStackTrace();}returnnull;}}
G
Gabriel_Garcia
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
J
joaoorso
Tentei …
Não Rolou
J
joaoorso
Legal o p:calendar mas no meu caso não é um input … só quero exibir uma data nesse formato : “dd/MM/yyyy”
W
wbdsjunior
você quer a data no formato dd/MM/yyyy? se sim, deixe apenas o atributo pattern. assim:
<f:convertDateTimepattern="dd/MM/yyyy"/>
J
joaoorso
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:
importjava.text.DateFormat;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Locale;importjavax.faces.component.UIComponent;importjavax.faces.context.FacesContext;importjavax.faces.convert.Converter;publicclassDateConverterimplementsConverter{@OverridepublicObjectgetAsObject(FacesContextfc,UIComponentui,Stringvalue){DateFormatdf=newSimpleDateFormat("dd/MM/yyyy");Datedata=null;try{data=df.parse(value);}catch(ParseExceptione){e.printStackTrace();}returndata;}@OverridepublicStringgetAsString(FacesContextfc,UIComponentui,Objectvalue){try{DateFormatnewStyle=newSimpleDateFormat("dd/MM/yyyy");if(value!=null&&!value.toString().trim().isEmpty()){DateFormatdf=newSimpleDateFormat("E MMM dd HH:mm:ss z yyyy",Locale.ENGLISH);Datedata=df.parse(value.toString().trim());StringformatedDate=newStyle.format(data);returnformatedDate;}}catch(Exceptione){e.printStackTrace();}returnnull;}}
É 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 ? >
J
joaoorso
[quote=wbdsjunior]você quer a data no formato dd/MM/yyyy? se sim, deixe apenas o atributo pattern. assim:
Acredite, tentei de varias maneiras resolver este problema, pesquisie mto nao não encontrei uma solução melhor.
J
joaoorso
É …
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 */publicstaticStringformataData(Datedata){SimpleDateFormatsimpleDateFormat=newSimpleDateFormat("dd/MM/yyyy");returnsimpleDateFormat.format(data);}
Aí mandava string pra tela :roll:
Mas a sua solução é bem mais elegante .
Bem … obrigado novamente .
falow !
G
Gabriel_Garcia
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