26 日、1 日、または 2 日の序数サフィックスを追加します。
を使用してJSFでこれを行うにはどうすればよい<f:convertDateTime>
ですか? pattern
で属性を使用しようとしましたがdd
、これは序数の接尾辞なしで整数のみを出力します。
残念ながら、これは によってサポートされていませ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>
、通常の方法で別の出力を使用するだけです。