Tidak Dapat Memformat Objek sebagai Tarikh dalam Java
Dalam Java, apabila cuba memformat objek yang diberikan sebagai tarikh menggunakan kaedah DateFormat.format , anda mungkin menghadapi pengecualian berikut:
java.lang.IllegalArgumentException: Cannot format given Object as a Date
Ralat ini berlaku apabila objek yang anda cuba formatkan bukan contoh Tarikh. Dalam kes anda, anda cuba memformat rentetan ("2012-11-17T00:00:00.000-05:00") sebagai tarikh menggunakan contoh SimpleDateFormat yang dikonfigurasikan dengan corak "mm/yyyy".
Penyelesaian
Untuk menangani isu ini, anda harus menggunakan dua objek SimpleDateFormat: satu untuk menghuraikan rentetan input ke dalam contoh Tarikh dan satu lagi untuk memformat Tarikh yang terhasil ke dalam format yang dikehendaki:
<code class="java">import java.text.SimpleDateFormat; import java.util.Date; public class DateParser { public static void main(String args[]) { String monthYear = null; // Create input format to parse from "yyy-MM-dd'T'HH:mm:ss.SSSX" SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); // Create output format to format to "MM/yyyy" SimpleDateFormat outputFormat = new SimpleDateFormat("MM/yyyy"); String inputText = "2012-11-17T00:00:00.000-05:00"; try { // Parse the input string into a Date object Date date = inputFormat.parse(inputText); // Format the parsed Date into the desired format monthYear = outputFormat.format(date); System.out.println(monthYear); } catch (ParseException e) { System.err.println("Input string is not a valid date: " + e.getMessage()); } } }</code>
Pendekatan ini memisahkan operasi penghuraian dan pemformatan, memastikan bahawa input ditukar dengan betul kepada contoh Tarikh sebelum cuba memformatnya menggunakan corak yang ditentukan.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Pengecualian \'Tidak Dapat Memformat Objek sebagai Tarikh\' dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!