こうすると、月の日付が数値 ( 11
、21
、23
) として返されます。
SimpleDateFormat formatDayOfMonth = new SimpleDateFormat("d");
しかし、月の日付をどのようにフォーマットすれば序数指示子、 と言いますか11th
、21st
それとも23rd
?
ベストアンサー1
// https://github.com/google/guava
import static com.google.common.base.Preconditions.*;
String getDayOfMonthSuffix(final int n) {
checkArgument(n >= 1 && n <= 31, "illegal day of month: " + n);
if (n >= 11 && n <= 13) {
return "th";
}
switch (n % 10) {
case 1: return "st";
case 2: return "nd";
case 3: return "rd";
default: return "th";
}
}
@kaliatech の表は素晴らしいですが、同じ情報が繰り返されているため、バグが発生する可能性があります。実際に7tn
、、、の表にこのようなバグがあります17tn
(27tn
このバグは、StackOverflow の流動的な性質により、時間の経過とともに修正される可能性があります。回答のバージョン履歴エラーを確認するには)。