月の日付を「11日」、「21日」、または「23日」(序数)と表記するにはどうすればよいでしょうか? 質問する

月の日付を「11日」、「21日」、または「23日」(序数)と表記するにはどうすればよいでしょうか? 質問する

こうすると、月の日付が数値 ( 112123) として返されます。

SimpleDateFormat formatDayOfMonth = new SimpleDateFormat("d");

しかし、月の日付をどのようにフォーマットすれば序数指示子、 と言いますか11th21stそれとも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 の流動的な性質により、時間の経過とともに修正される可能性があります。回答のバージョン履歴エラーを確認するには)。

おすすめ記事