Além da sugestão de resolução que dei no post supracitado, encontrei duas outras formas. Veja quais são:
1) Utilizar <apex:OutputField />
Veja que quando se utiliza o <apex:OutputField /> diferente do <apex:OutputText /> a hora já vem formatada no GMT padrão.
Controller:
public class TesteController { public MeuObjeto__c obj { get; set; } public TesteController() { this.obj = new MeuObjeto__c(); this.obj.DataHoraOcorrido__c = DateTime.Now(); } }
Visualforce:
<apex:page controller="TesteController" > <apex:outputText value="{!Obj.DataHoraOcorrido__c}" /> <br/><br/> <apex:outputField value="{!Obj.DataHoraOcorrido__c}" /> </apex:page>
Resultado:
2) Utilizar o fuso horário através do Apex
Dessa forma, crio uma propriedade no Apex que retorna um cálculo em cima do Timezone (fuso horário) do Usuário, que deve ser adicionado à Data/Hora.
Controller:
public class TesteController { public MeuObjeto__c obj { get; set; } public TesteController() { this.obj = new MeuObjeto__c(); this.obj.DataHoraOcorrido__c = DateTime.Now(); } public Double Timezone { get { return UserInfo.getTimeZone().getOffset(DateTime.now()) / (1000 * 3600 * 24.0); } } }
Visualforce:
<apex:page controller="TesteController" > Não formatado: <br/> <apex:outputText value="{!Obj.DataHoraOcorrido__c + timezone}" /> <br/><br/> Formatado: <br/> <apex:outputText value="{0,date,dd/MM/yyyy HH:mm:ss}"> <apex:param value="{!Obj.DataHoraOcorrido__c + timezone}"/> </apex:outputText> </apex:page>
Resultado:
Por hoje é só! Até a próxima...
* Está precisando de um suporte ou uma consultoria formatações de Data e Hora nas Visualforce dentro da sua plataforma Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ Somos parceiros Salesforce
Nenhum comentário:
Postar um comentário