Как отформатировать дату в VisualForce?

В Salesforce, если я привязываю дату к странице VisualForce, как мне применить к ней настраиваемое форматирование?

Пример:

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

В результате будет выводиться дата в формате по умолчанию:

Thu Jul 01 09:10:23 GMT 2009

Как получить его (например) в формате dd/mm/yyyy, например:

01/07/2009

(Надеюсь, это довольно простой вопрос, но чтобы сообщество Salesforce продолжалось здесь, мне кажется, нам нужно несколько простых вопросов.)

Ответы

Ответ 2

Ответ, похоже, зависит от контекста. У меня есть одна страница VF, которая предварительно заполняет строку Subject задачи значением NOW(). Чтобы записать его с настройками пользователя Locale, я включил методы в контроллер для форматирования полей даты и даты и времени в следующих строках:

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

Но только сейчас на другой странице VF, где я просто показываю поле datetime, я подтвердил, что SFDC обрабатывает форматирование на основе пользовательской настройки Locale. Это было в этом контексте, где cm.CampaignMembers - это переменная от контроллера:

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