كيفية تنسيق تاريخ في Visualforce؟
-
22-09-2019 - |
سؤال
في Salesforce ، إذا كنت أربط تاريخًا في صفحة Visualforce ، فكيف يمكنني تطبيق التنسيق المخصص لها؟
مثال:
<apex:page standardController="Contact">
<apex:pageBlock title="Test">
<p>{!contact.Birthdate}</p>
</apex:pageBlock>
<apex:detail relatedList="false" />
</apex:page>
سيؤدي هذا إلى إخراج تاريخ بالتنسيق الافتراضي:
الخميس يوليو 01 09:10:23 بتوقيت جرينتش 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 واحدة تُفصل مسبقًا لسطر الموضوع لمهمة مع قيمة NOW (). لتسجيله مع إعدادات لغة المستخدم ، قمت بتضمين أساليب في وحدة التحكم لتنسيق الحقول وحقول الوقت ، على طول هذه السطور:
Datetime myDT = Datetime.now();
String myDate = myDT.format();
لكن الآن في صفحة VF أخرى حيث أقوم فقط بعرض حقل DateTime ، أكدت أن SFDC تعاملت مع التنسيق بناءً على إعداد لغة المستخدم. كان ذلك في هذا السياق ، حيث يعد C.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>