2

26 日、1 日、または 2 日の序数サフィックスを追加します。

を使用してJSFでこれを行うにはどうすればよい<f:convertDateTime>ですか? patternで属性を使用しようとしましたがdd、これは序数の接尾辞なしで整数のみを出力します。

4

1 に答える 1

1

残念ながら、これは によってサポートされていませSimpleDateFormat<f:convertDateTime>

これには、カスタム EL 関数を作成する必要があります。このような関数は次のようになります。

public static String getDayWithSuffix(Date date) {
    if (date == null) {
        return null;
    }

    int day = Integer.valueOf(new SimpleDateFormat("d").format(date));

    if (day / 10 == 1) {
        return day + "th";
    }

    switch (day % 10) {
        case 1: return day + "st";
        case 2: return day + "nd";
        case 3: return day + "rd";
        default: return day + "th";
    }
}

次のように使用します。

#{my:getDayWithSuffix(bean.date)}

残りの月については<f:convertDateTime>、通常の方法で別の出力を使用するだけです。

于 2013-09-12T11:20:21.100 に答える