首頁 > Java > java教程 > 為什麼 DateFormat 會拋出「無法將給定物件格式化為日期」異常?

為什麼 DateFormat 會拋出「無法將給定物件格式化為日期」異常?

Linda Hamilton
發布: 2024-11-03 07:14:03
原創
390 人瀏覽過

Why Does DateFormat Throw a

DateFormat 無法格式化字串物件

在Java 中,DateFormat 類別專門用於格式化和解析Date 物件,而不是字符串。提供的程式碼示範了一個常見錯誤,其中日期的字串表示形式 (“2012-11-17T00:00:00.000-05:00”) 直接傳遞給 DateFormat.format() 方法。這會導致“無法將給定物件格式化為日期”異常。

兩個SimpleDateFormat 物件方法

要解決此問題,需要使用兩個SimpleDateFormat 物件:一個用於將字串解析為Date 對象,另一個用於將Date 物件格式化為所需的格式。以下修改後的程式碼解決了問題:

<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>
登入後複製

在此程式碼中:

  • inputFormat 用於將輸入字串解析為 Date 物件。
  • outputFormat然後用於將 Date 物件格式化為所需的「mm/yyyy」格式。
  • 程式碼在解析輸入字串時處理潛在的 ParseException 例外。

以上是為什麼 DateFormat 會拋出「無法將給定物件格式化為日期」異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板