Ответ 1
<apex:outputText value="{0,date,MM'/'dd'/'yyyy}">
<apex:param value="{!contact.Birthdate}" />
</apex:outputText>
ссылка на полный документ: http://www.salesforce.com/us/developer/docs/pages/Content/pages_compref_outputText.htm
В 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 продолжалось здесь, мне кажется, нам нужно несколько простых вопросов.)
<apex:outputText value="{0,date,MM'/'dd'/'yyyy}">
<apex:param value="{!contact.Birthdate}" />
</apex:outputText>
ссылка на полный документ: http://www.salesforce.com/us/developer/docs/pages/Content/pages_compref_outputText.htm
Ответ, похоже, зависит от контекста. У меня есть одна страница 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>