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

Bagaimanakah Saya Boleh Mengesahkan Format Tarikh di Java?

Mary-Kate Olsen
Lepaskan: 2024-10-29 05:56:02
asal
561 orang telah melayarinya

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
}
Salin selepas log masuk

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
Salin selepas log masuk

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;
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan