【问题标题】:RichFaces 4.3.3 AM/PM selector is blankRichFaces 4.3.3 AM/PM 选择器为空白
【发布时间】:2014-04-15 15:48:26
【问题描述】:

我需要日历组件中的两件事。

1) AM/PM 选择器。现在,我可以选择小时/分钟,但上午/下午是空白的。知道为什么吗? 2) 12 小时制而不是 24 小时制。通过 AM/PM 工作,这将满足要求。但如果没有,是否有指定 12 小时制的时钟?

代码:

<rich:calendar value="#{bean.aTimeField}" id="aTimeField"  
popup="true"  datePattern="d/M/yy HH:mm a"
enableManualInput="true" required="true"
showApplyButton="true" cellWidth="24px" cellHeight="24px" style="width:200px">
<f:ajax event="change" execute="@this"  bypassUpdates="#{true}"  render="aTimeField"/>       
</rich:calendar>

【问题讨论】:

  • 展示使用小写的hh 表示分钟。你试过这个吗?
  • 此外,API docs 不同意代码:datePattern 应该是 ISO-8601 规范字符串,但该标准中没有任何内容允许“HH”(它是 @ 987654326@ 并且它们总是 24 小时零填充)。所以我的猜测是我们在这里谈论Java 的SimpleDateFormat。无法确认 ATM,因此将其作为评论留下。底线:尝试“d/M/yy hh:mm a”作为datePattern
  • "d/M/yy hh:mm a" 作为 datePattern 工作得很好。谢谢!

标签: jakarta-ee richfaces centos6 jboss6.x


【解决方案1】:

短篇小说:

通过将HH:mm 作为datePattern 的一部分,您实际上是在强制RichFaces 使用24 小时格式。将其更改为 hh:mm a 以使 AM/PM 按预期工作,并将其更改为 used in the showcase

长篇大论:

API docs 说:

datePattern [...] 用于根据 ISO 8601 格式化日期和时间字符串(例如,d/M/yy HH:mm a)

自标准 uses 24h format 以来,即使是示例也表示混淆,因此 没有 AM/PM 区别。

这仍然有效,因为input component 使用标准javax.faces.convert.DateTimeConverter 来处理datePattern。而这堂课'javadoc 表示:

如果已指定模式,则其语法必须符合 java.text.SimpleDateFormat 指定的规则。

而这种格式规范在distinguish之间

H   Hour in day (0-23)
h   Hour in am/pm (1-12)

【讨论】:

    猜你喜欢
    • 2011-06-16
    • 1970-01-01
    • 2017-11-08
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多