【问题标题】:return only date from primefaces p:calendar从 primefaces p:calendar 仅返回日期
【发布时间】:2013-09-09 07:55:37
【问题描述】:

我试图在没有时间或命名日期的情况下返回“9/10/2013”​​这样的日期

但是当我使用

<p:calendar  value="#{studentQuery.from}" pattern="MM/dd/yyyy" navigator="true" display="inline"/>  

它返回:

Thu Sep 12 00:00:00 EET 2013 

如何修复它以仅返回日期,例如:“9/10/2013”​​使用 primefaces 3.5 和 jsf 2

【问题讨论】:

  • 它在哪里返回?你的意思是bean中的变量吗?该模式仅影响 primefaces 显示所选日期的字段。 outputtext 上的相同模式,您会以相同的模式看到它。
  • 是的,在具有 Date 对象类型的 bean 中,我使用 system.out.println
  • 所以你也需要在java中使用一些DateFormat。
  • 这是因为如果你只是用prinln调用日期对象,它总是有相同的输出模式。 Date 对象本身是数据,而不是日期字符串。
  • 如果您想在控制台中漂亮地打印它,请使用 DateFormat 或任何类似的 dateformatter。如果您希望它漂亮地出现在页面上,请使用 outputText 和相同的模式。

标签: jsf jsf-2 primefaces


【解决方案1】:

在 Java 中:

 SimpleDateFormat format = 
        new SimpleDateFormat("MM/dd/yyyy");

 System.out.print(format.format(dateObject));

在 JSF 中:

<h:outputText value="#{bean.date}">  
            <f:convertDateTime pattern="MM/dd/yyyy"/>  
        </h:outputText>  

大概是这样的。

【讨论】:

  • 父级不是 ValueHolder 的实例
  • 这个答案与 Primefaces 3.5 不兼容!
  • 有趣。您是否应该尝试在转换器中使用 type="date" 。我很感兴趣,为什么primefaces版本会影响这个解决方案?此打印不包含 primefaces 组件。
  • 无法将 'java.text.SimpleDateFormat@7c669100' 转换为字符串。
  • 您是否将格式本身作为参数提供?而不是 Date 对象?
猜你喜欢
  • 2013-01-18
  • 1970-01-01
  • 2023-01-31
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 2013-12-05
  • 2020-05-27
  • 2013-05-09
相关资源
最近更新 更多