月の日を表示する場合、多くの場合、それを示す序数標識を含めることが望ましいです。 「1 日」、「2 日」、「3 日」など。Java の SimpleDateFormat は数値の日をフォーマットする方法を提供します。
序数インジケーターを使用して月の日を書式設定するには、カスタム関数または外部ライブラリに依存します。このようなライブラリの 1 つが Google Guava で、getDayOfMonthSuffix と呼ばれるメソッドを提供します。
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"; } }
この例では、getDayOfMonthSuffix は月内の日を入力として受け取り、対応する序数インジケーターを返します。日が "11"、"12"、または "13" で終わる特殊なケースを処理して、"st"、"nd"、または "rd" の代わりに "th" を返します。
このメソッドの使用方法、序数インジケーターを使用して月の日付を書式設定できるようになりました。
SimpleDateFormat sdf = new SimpleDateFormat("MMMMM d"); int dayOfMonth = 21; String formattedDate = sdf.format(new Date()) + getDayOfMonthSuffix(dayOfMonth); System.out.println(formattedDate); // prints "January 21st"
次の点に注意してください。序数インジケーターを使用して月の日付を書式設定するときは、特殊なケースや特殊な状況を考慮することが重要です。たとえば、質問で言及されているテーブルには、「7tn」、「17tn」、および「27tn」で終わる日のエラーが含まれています。このようなバグを回避するには、堅牢なカスタム コードを使用するか、十分にテストされたライブラリを利用することをお勧めします。
以上がJavaで序数標識(1st、2nd、3rd)を使用して日付をフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。