Rumah >Java >javaTutorial >Bagaimanakah SimpleDateFormat Boleh Menghuraikan Tarikh dengan Cekap dalam Pelbagai Format?
Menghuraikan Tarikh dalam Pelbagai Format Menggunakan SimpleDateFormat
Menghuraikan tarikh boleh menjadi tugas yang mencabar, terutamanya apabila berurusan dengan format tarikh yang pelbagai. Dalam senario ini, pengguna telah memasukkan tarikh dalam format yang serupa tetapi tidak serupa, termasuk variasi seperti "9/09" dan "9/1/2009."
Untuk mengendalikan percanggahan ini dengan berkesan, adalah penting untuk menggunakan kaedah yang berbeza. Objek SimpleDateFormat untuk setiap corak unik. Walau bagaimanapun, terima kasih kepada cara SimpleDateFormat mentafsir corak berangka, kami boleh meminimumkan bilangan format yang diperlukan.
Khususnya, untuk corak dengan ruang letak berangka ("M" untuk bulan dan "y" untuk tahun), nombor minimum daripada digit ditentukan oleh bilangan huruf pola. Nombor yang lebih pendek akan berlapik sifar untuk memadankan panjang ini. Walau bagaimanapun, semasa menghurai, bilangan huruf corak diabaikan melainkan perlu mengasingkan medan bersebelahan.
Menggunakan pengetahuan ini, kita boleh mentakrifkan format berikut:
Dengan format ini, kami boleh mencipta kaedah untuk menghuraikan tarikh dalam perkara berikut cara:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.List; public class DateParser { public static void main(String[] args) { List<String> formatStrings = Arrays.asList("M/y", "M/d/y", "M-d-y"); String[] dates = {"9/09", "9/2009", "09/2009", "9/1/2009", "9-1-2009"}; for (String dateString : dates) { Date parsedDate = tryParse(dateString, formatStrings); if (parsedDate != null) { System.out.println("Parsed date: " + parsedDate); } else { System.out.println("Unable to parse date: " + dateString); } } } public static Date tryParse(String dateString, List<String> formatStrings) { for (String formatString : formatStrings) { try { return new SimpleDateFormat(formatString).parse(dateString); } catch (ParseException e) { // Do nothing and continue to the next format } } return null; } }
Dengan mengulangi rentetan format yang ditentukan mengikut tertib yang paling tidak terhad kepada yang paling terhad, kaedah ini menghuraikan setiap rentetan tarikh dan mengembalikan tarikh pertama yang berjaya dihuraikan. Pendekatan ini mengendalikan format tarikh yang pelbagai dengan cekap tanpa pertindihan kod yang tidak perlu.
Atas ialah kandungan terperinci Bagaimanakah SimpleDateFormat Boleh Menghuraikan Tarikh dengan Cekap dalam Pelbagai Format?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!