Rumah >Java >javaTutorial >Mengapa DateFormat Melemparkan Pengecualian \'Tidak Dapat Memformat Objek Diberi sebagai Tarikh\'?

Mengapa DateFormat Melemparkan Pengecualian \'Tidak Dapat Memformat Objek Diberi sebagai Tarikh\'?

Linda Hamilton
Linda Hamiltonasal
2024-11-03 07:14:03452semak imbas

Why Does DateFormat Throw a

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:

  • inputFormat digunakan untuk menghuraikan rentetan input ke dalam objek Tarikh.
  • outputFormat kemudiannya digunakan untuk memformat objek Tarikh dalam format "mm/yyyy" yang dikehendaki.
  • Kod ini mengendalikan kemungkinan pengecualian ParseException apabila menghuraikan rentetan input.

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!

Kenyataan:
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