1. ホーム
  2. java

[解決済み] "11日"、"21日"、"23日 "と言う月の曜日はどのようにフォーマットするのでしょうか?(序数表示)を教えてください。

2022-04-23 10:36:04

質問内容

これで月の曜日が数字で出てくるのはわかるのですが...( 11 , 21 , 23 ):

SimpleDateFormat formatDayOfMonth = new SimpleDateFormat("d");

しかし、月の日にちを含めるには、どのように書式設定すればよいのでしょうか。 序数表示 と言う 11th , 21st または 23rd ?

解決方法は?

// 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の流動的な性質上、時間が経つにつれて修正される可能性があるので、以下の項目をチェックしてください。 回答のバージョン履歴 をクリックするとエラーが表示されます)。