Saya mencoba mempelajari seluk beluk metode parse() dan format() DateFormat untuk ujian SCJP 6. Saya baru-baru ini mencoba membuat beberapa kode untuk memformat dan mengurai tanggal dan menemukan bahwa metode parse hanya berfungsi jika sebuah String diformat dengan cara yang cocok dengan format instance DateFormat. Apakah itu berarti jika saya menggunakan kelas ini dalam kehidupan nyata dan membaca dokumen yang tanggalnya diformat dalam 6 cara berbeda, saya memerlukan 6 objek DateFormat berbeda agar berhasil mengurai string menjadi objek tanggal?
import java.util.*;
import java.text.*;
import java.io.Console;
class PlayWithDates {
public static void main(String[] args) {
String formatted = "";
Date parsed;
Date d1 = new Date();
DateFormat defaultFormat = DateFormat.getDateInstance();
DateFormat shortFormat = DateFormat.getDateInstance(DateFormat.SHORT);
formatted = defaultFormat.format(d1);
System.out.println(formatted);
formatted = shortFormat.format(d1);
System.out.println(formatted instanceof String);
System.out.println(formatted);
try {
parsed = shortFormat.parse(formatted);
System.out.println(parsed);
} catch(ParseException pe) {
System.out.println(pe);
}
try {
parsed = defaultFormat.parse(formatted);
System.out.println(parsed);
} catch(ParseException pe) {
System.out.println(pe);
}
}
}
Ketika saya menjalankan program ini saya mendapatkan:
Dec 11, 2013
true
12/11/13
Wed Dec 11 00:00:00 MST 2013
java.text.ParseException: Unparseable date: "12/11/13"
Tampaknya bagi saya akan sangat sulit untuk memprediksi kapan sebuah String dapat diurai atau tidak. Haruskah saya melakukan ini dengan contoh Kalender? Terima kasih atas penjelasannya. Aku akan sedikit gila belajar untuk ujian ini.