Pergunta

No Salesforce, se estou vinculando uma data em uma página do Visualforce, como aplico formatação personalizada a ela?

Exemplo:

<apex:page standardController="Contact">
  <apex:pageBlock title="Test">
      <p>{!contact.Birthdate}</p>
  </apex:pageBlock>                   
  <apex:detail relatedList="false" />
</apex:page> 

Isso produzirá uma data no formato padrão:

Qui, 01 de julho 09:10:23 GMT 2009

Como faço para obter (por exemplo) em formato dd/mm/aaaaa, assim:

01/07/2009

(Espero que essa seja uma pergunta bastante fácil, mas para fazer com que a comunidade do Salesforce continue aqui, acho que precisamos de algumas perguntas fáceis.)

Foi útil?

Solução

<apex:outputText value="{0,date,MM'/'dd'/'yyyy}">
    <apex:param value="{!contact.Birthdate}" /> 
</apex:outputText>

Link para o DOC completo: http://www.salesforce.com/us/developer/docs/pages/content/pages_compref_outputtext.htm

Outras dicas

A resposta parece depender do contexto. Eu tenho uma página VF que pré-popula a linha de assunto de uma tarefa com o valor de agora (). Para gravá -lo com as configurações de localidade do usuário, incluí métodos no controlador para formatar a data e os campos da data e hora, nesse sentido:

  Datetime myDT = Datetime.now(); 
  String myDate = myDT.format();

Mas agora, em outra página do VF, onde estou apenas exibindo um campo DateTime, confirmei que a formatação tratada do SFDC com base na configuração de localidade do usuário. Isso foi neste contexto, onde o CM.CampaignMembers é uma variável do controlador:

    <apex:column>
      <apex:pageBlockTable value="{!cm.CampaignMembers}" var="cmp" >
        <apex:column headerValue="" value="{!cmp.Campaign.Name}" />
        <apex:column headerValue="" value="{!cmp.Status}"  />
        <apex:column headerValue="" value="{!cmp.FirstRespondedDate}" />
        <apex:column headervalue="" value="{!cmp.CreatedDate}"  />
      </apex:pageBlockTable>
    </apex:column>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top