首頁 > Java > java教程 > 如何在 Java 中使用序數指示器(第 1、第 2、第 3)格式化日期?

如何在 Java 中使用序數指示器(第 1、第 2、第 3)格式化日期?

Barbara Streisand
發布: 2024-12-17 03:20:25
原創
355 人瀏覽過

How to Format Dates with Ordinal Indicators (1st, 2nd, 3rd) in Java?

使用序數指示符(th、rd)格式化一月中的日子

顯示一月中的某一天時,通常需要包含一個序數指示符來表示是否是「1st」、「2nd」、「3rd」等。而Java的SimpleDateFormat提供了一種格式化月份中的數字日期的方法(「d」),它不包含序數指示器。

序數指示器格式

要使用序數指示器格式化一月中的某一天,您可以使用自訂函數或依賴外部函數圖書館。 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”結尾的特殊情況,以返回“th”而不是“st”、“nd”或“rd”。

使用此方法,您現在可以使用序數指示符格式化一個月中的日期:

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 中使用序數指示器(第 1、第 2、第 3)格式化日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板