Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mengesahkan Format Tarikh di Java?

Bagaimanakah Saya Boleh Mengesahkan Format Tarikh di Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-29 05:56:02562semak imbas

How Can I Validate Date Formats in Java?

Mengesahkan Format Tarikh dalam Java

Apabila berurusan dengan rentetan input pengguna, ia menjadi penting untuk memastikan tarikh yang diberikan mematuhi syarat tertentu format. Begini cara anda boleh mengesahkan format tarikh dalam Java dengan cekap:

Nota Mengenai Pengendalian Pengecualian

Menghuraikan rentetan kepada nilai tarikh boleh menimbulkan cabaran jika format tidak diketahui. Oleh itu, adalah penting untuk mengendalikan pengecualian dengan anggun dalam senario sedemikian.

Pendekatan Menggunakan SimpleDateFormat

Satu kaedah mudah melibatkan penggunaan SimpleDateFormat:

Date date = null;
try {
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    date = sdf.parse(value);
    if (!value.equals(sdf.format(date))) {
        date = null;
    }
} catch (ParseException ex) {
    // Handle exceptions here
}

if (date == null) {
    // Invalid date format
} else {
    // Valid date format
}

Ini approach membandingkan rentetan asal kepada versi terformat tarikh yang dihuraikan. Jika ia sepadan, format tarikh adalah sah.

Contoh:

Sebagai contoh, pertimbangkan untuk menyemak sama ada rentetan "20130925" adalah dalam format dd/MM/yyyy:

isValidFormat("dd/MM/yyyy", "20130925") // Returns false

Penyelesaian Dipertingkat untuk Pelbagai Format

Dengan Java 8 dan ke atas, anda boleh memanfaatkan API DateTime. Ini membolehkan anda mengesahkan format tarikh dan masa yang berbeza:

LocalDateTime ldt = null;
DateTimeFormatter fomatter = DateTimeFormatter.ofPattern(format, locale);

try {
    ldt = LocalDateTime.parse(value, fomatter);
    String result = ldt.format(fomatter);
    return result.equals(value);
} catch (DateTimeParseException e) {
    // Attempt parsing as date or time only
}

return false;

Pendekatan ini mengendalikan berbilang format (tarikh sahaja, tarikh dengan masa, masa sahaja) dengan mencuba pelbagai penghuraian dan membandingkan hasilnya.

Contoh Kemas Kini:

Menggunakan penyelesaian yang dikemas kini:

isValidFormat("dd/MM/yyyy", "20130925") // Returns false
isValidFormat("dd/MM/yyyy", "25/09/2013") // Returns true
isValidFormat("dd/MM/yyyy", "25/09/2013 12:13:50") // Returns false

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Format Tarikh 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