web-dev-qa-db-fra.com

Comment formater une date dans VisualForce?

Dans Salesforce, si je lie une date à une page VisualForce, comment lui appliquer un formatage personnalisé?

Exemple:

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

Cela affichera une date au format par défaut:

Jeu. Juil. 01 09:10:23 GMT 2009

Comment puis-je l'obtenir (par exemple) au format jj/mm/aaaa, comme ceci:

01/07/2009

(J'espère que c'est une question assez facile, mais pour que la communauté Salesforce continue ici, je pense que nous avons besoin de quelques questions faciles.)

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

lien vers le document complet: http://www.salesforce.com/us/developer/docs/pages/Content/pages_compref_outputText.htm

51
Ryan Guest

La réponse semble dépendre du contexte. J'ai une page VF qui préremplit la ligne Objet d'une tâche avec la valeur NOW (). Pour l'enregistrer avec les paramètres régionaux de l'utilisateur, j'ai inclus des méthodes dans le contrôleur pour formater les champs date et datetime, le long de ces lignes:

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

Mais tout à l'heure, dans une autre page VF où j'affiche simplement un champ datetime, j'ai confirmé que SFDC gérait le formatage en fonction du paramètre Locale de l'utilisateur. C'était dans ce contexte, où cm.CampaignMembers est une variable du contrôleur:

    <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>
3
Scott_in_London