更改JSF中的日期格式,如1ST OCT

时间:2016-10-19 13:47:52

标签: jsf icefaces

我希望在“2016年10月17日星期一”获得日期时显示“1ST OCT”的日期和月份,并且我使用下面的代码,任何帮助都会被评估。

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

1 个答案:

答案 0 :(得分:1)

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

您只需要声明新的String变量,并使用以下方法格式化日期。

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);
    }