Rumah >Java >javaTutorial >Bagaimana untuk Memformat Tarikh dengan Penunjuk Ordinal (1, 2, 3) di Java?

Bagaimana untuk Memformat Tarikh dengan Penunjuk Ordinal (1, 2, 3) di Java?

Barbara Streisand
Barbara Streisandasal
2024-12-17 03:20:25362semak imbas

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

Memformatkan Hari Bulan dengan Penunjuk Ordinal (th, rd)

Apabila memaparkan hari dalam bulan, selalunya wajar untuk memasukkan penunjuk ordinal untuk menandakan sama ada ia adalah "1", "2nd", "3rd", dll. Walaupun SimpleDateFormat Java menyediakan cara untuk memformat hari berangka bulan ("d"), ia tidak termasuk penunjuk ordinal.

Pemformatan Penunjuk Ordinal

Untuk memformatkan hari dalam bulan dengan penunjuk ordinal, anda boleh menggunakan fungsi tersuai atau bergantung pada perpustakaan luar. Salah satu perpustakaan tersebut ialah Google Guava, yang menawarkan kaedah yang dipanggil 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";
    }
}

Dalam contoh ini, getDayOfMonthSuffix mengambil satu hari dalam sebulan sebagai input dan mengembalikan penunjuk ordinal yang sepadan. Ia mengendalikan kes khas apabila hari berakhir dengan "11", "12", atau "13" untuk mengembalikan "th" dan bukannya "st", "nd", atau "rd".

Menggunakan kaedah ini , anda kini boleh memformatkan hari dalam bulan dengan penunjuk ordinal:

SimpleDateFormat sdf = new SimpleDateFormat("MMMMM d");
int dayOfMonth = 21;
String formattedDate = sdf.format(new Date()) + getDayOfMonthSuffix(dayOfMonth);
System.out.println(formattedDate); // prints "January 21st"

Mengatasi Potensi Pepijat

Perhatikan bahawa adalah penting untuk mempertimbangkan kes sudut dan situasi istimewa apabila memformat hari dalam bulan dengan penunjuk ordinal. Sebagai contoh, jadual yang disebut dalam soalan mengandungi ralat untuk hari yang berakhir dengan "7tn", "17tn", dan "27tn". Untuk mengelakkan pepijat sedemikian, anda dinasihatkan untuk menggunakan kod tersuai yang mantap atau bergantung pada perpustakaan yang telah diuji dengan baik.

Atas ialah kandungan terperinci Bagaimana untuk Memformat Tarikh dengan Penunjuk Ordinal (1, 2, 3) di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn