Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menghuraikan Format Tarikh Pembolehubah (cth., 9/09, 9/1/2009, 9-1-2009) Dengan Cekap di Java?

Bagaimanakah Saya Boleh Menghuraikan Format Tarikh Pembolehubah (cth., 9/09, 9/1/2009, 9-1-2009) Dengan Cekap di Java?

Patricia Arquette
Patricia Arquetteasal
2024-12-12 18:53:10669semak imbas

How Can I Parse Variable Date Formats (e.g., 9/09, 9/1/2009, 9-1-2009) Efficiently in Java?

Menghuraikan Format Tarikh Pembolehubah dengan SimpleDateFormat

Apabila menghadapi senario di mana tarikh dimasukkan dalam format yang tidak konsisten, SimpleDateFormat boleh digunakan untuk penghuraian yang cekap.

Untuk menampung yang diberikan format:

  • 9/09, 9/2009, 09/2009: Corak tangkapan "M/y" variasi ini, dengan "M" mewakili bulan dan "y" yang tahun.
  • 9/1/2009: Untuk tarikh dengan komponen hari, corak "M/d/y" harus digunakan, dengan "d" mewakili hari tersebut.
  • 9-1-2009: Corak yang serupa, "M-d-y", sesuai untuk tarikh yang menggunakan tanda sempang sebagai pembatas.

Tidak perlu membuat sarang cuba/menangkap blok. Sebaliknya, ulangi berbilang objek SimpleDateFormat dengan corak yang berbeza-beza.

Kaedah seperti berikut boleh dilaksanakan:

// ...
List<String> formatStrings = List.of("M/y", "M/d/y", "M-d-y");
// ...

Date tryParse(String dateString) {
    for (String formatString : formatStrings) {
        try {
            return new SimpleDateFormat(formatString).parse(dateString);
        } catch (ParseException ignored) {}
    }
    return null;
}

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Format Tarikh Pembolehubah (cth., 9/09, 9/1/2009, 9-1-2009) Dengan Cekap 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