【问题标题】:Change the date format in JSF like 1ST OCT更改 JSF 中的日期格式,如 1ST OCT
【发布时间】:2017-03-01 04:53:59
【问题描述】:

我想在获取日期“2016 年 10 月 17 日星期一”时显示日期和月份,如“1ST OCT”,并且我正在使用以下代码,如有任何帮助,将不胜感激。

<ice:outputLabel value="#{currentRow.eventDate}">
       <f:convertDateTime dateStyle="full" timeZone="#{AnnouncementBean.timeZone}" />
 </ice:outputLabel>

【问题讨论】:

标签: jsf icefaces


【解决方案1】:

您可以在 java 代码中手动格式化您的日期,而不是使用f:convertDateTime

你只需要声明一个新的字符串变量,它是使用以下方法格式化的日期。

public static String getFormattedDate(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        // 2nd of march 2015
        int day = cal.get(Calendar.DATE);

        if (!((day > 10) && (day < 19)))
            switch (day % 10) {
            case 1:
                return new SimpleDateFormat("d'st' 'of' MMM").format(date);
            case 2:
                return new SimpleDateFormat("d'nd' 'of' MMM").format(date);
            case 3:
                return new SimpleDateFormat("d'rd' 'of' MMM").format(date);
            default:
                return new SimpleDateFormat("d'th' 'of' MMM").format(date);
            }
        return new SimpleDateFormat("d'th' 'of' MMM").format(date);
    }

【讨论】:

  • 嗨 Sarz,但我的要求是使用 f:convertDateTime 格式化日期
  • @Muhammad:然后检查f:convertDateTime api,看看是否支持。如果没有,请创建自己的或在 java 代码中使用它
  • 如果有一个额外的方法来返回“st”、“nd”、“rd”或“th”,可能会更好。现在有很多(几乎)重复。
  • 是的@JasperdeVries,你是对的,我们也有其他方法。
  • @Muhammad f:convertDateTime 提供了这种格式,你可以直接使用它,如果没有,你必须找到一些替代品来实现它。
猜你喜欢
  • 2011-07-20
  • 1970-01-01
  • 2011-06-05
  • 2016-11-22
相关资源
最近更新 更多