DateFormat Tidak Dapat Memformat Objek Rentetan
Dalam Java, kelas DateFormat direka khusus untuk memformat dan menghuraikan objek Tarikh, bukan rentetan. Kod yang disediakan menunjukkan ralat biasa apabila perwakilan rentetan tarikh ("2012-11-17T00:00:00.000-05:00") dihantar terus kepada kaedah DateFormat.format(). Ini menghasilkan pengecualian "Tidak boleh memformat Objek yang diberikan sebagai Tarikh".
Dua Pendekatan Objek SimpleDateFormat
Untuk menyelesaikan isu ini, anda perlu menggunakan dua objek SimpleDateFormat: satu untuk menghuraikan rentetan ke dalam objek Tarikh dan satu lagi untuk memformat objek Tarikh dalam format yang dikehendaki. Kod yang disemak berikut menangani isu:
<code class="java">import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; public class DateParser { public static void main(String args[]) { String MonthYear = null; String dateformat = "2012-11-17T00:00:00.000-05:00"; SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US); SimpleDateFormat outputFormat = new SimpleDateFormat("MM/yyyy", Locale.US); try { Date date = inputFormat.parse(dateformat); MonthYear = outputFormat.format(date); System.out.println(MonthYear); } catch (ParseException e) { System.err.println("Invalid date format."); } } }</code>
Dalam kod ini:
Atas ialah kandungan terperinci Mengapa DateFormat Melemparkan Pengecualian \'Tidak Dapat Memformat Objek Diberi sebagai Tarikh\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!