【问题标题】:How to format a date in VisualForce?如何在 VisualForce 中格式化日期?
【发布时间】:2011-01-31 18:33:28
【问题描述】:

在 Salesforce 中,如果我将日期绑定到 VisualForce 页面,如何对其应用自定义格式?

例子:

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

这将以默认格式输出日期:

2009 年 7 月 1 日星期四 09:10:23 GMT

如何将其(例如)转换为 dd/mm/yyyy 格式,如下所示:

2009 年 1 月 7 日

(希望这是一个相当简单的问题,但要让 Salesforce 社区继续前进,我认为我们需要几个简单的问题。)

【问题讨论】:

    标签: salesforce date-format visualforce


    【解决方案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

    【讨论】:

    • 使用这种方法,您可以使用完整的 JAVA 日期格式化类来格式化:日期时间、数字和货币。
    • 很高兴知道我一直在寻找这个!谢谢
    • 您可以发布文档链接吗?我想知道 apex:outputText (0,date) 中的前两个参数是什么意思。谢谢。
    • 如何获得这种格式以将用户时区考虑在内并以当地时区而不是 GMT 显示该时间?
    【解决方案2】:

    答案似乎取决于上下文。我有一个 VF 页面,它使用 NOW() 的值预先填充任务的主题行。为了使用用户的区域设置记录它,我在控制器中包含了格式化日期和日期时间字段的方法,如下所示:

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

    但刚才在另一个 VF 页面中,我仅显示日期时间字段,我确认 SFDC 根据用户的区域设置处理格式设置。在这种情况下,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>
    

    【讨论】:

      猜你喜欢
      • 2020-10-20
      • 2014-04-18
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多