domingo, 7 de fevereiro de 2016

Datetime no horário local em páginas Visualforce

Um problema comum entre os desenvolvedores de páginas Visualforce, é a exibição de dados Datetime no horário local (local time). O Salesforce armazena os dados de data e hora no padrão GMT. Dessa forma, ao realizar uma consulta SOQL no banco de dados do SFDC, em sua classe Controller, os dados de data e hora virão no padrão GMT. 

Bem, para exibir em sua Visualforce, os dados de data e hora no horário local da sua Org, use o método a seguir:

   public Datetime getLocalDateTime(Datetime z)  
   {    
     Datetime l = z.Date();  
     l = l.addHours(z.hour());  
     l = l.addMinutes(z.minute());  
     l = l.addSeconds(z.second());  
     return l;  
   }  

Com esse método, sua propriedade ou variável que estava sendo exibida no padrão GMT será exibido na hora local. Coloquei um System.Debug no código para verem o resultado:





Nenhum comentário: