首頁  >  文章  >  Java  >  如何處理 Java 中的「無法將物件格式化為日期」異常?

如何處理 Java 中的「無法將物件格式化為日期」異常?

Susan Sarandon
Susan Sarandon原創
2024-10-30 19:46:30814瀏覽

How to Handle

無法在Java 中將物件格式化為日期

在Java 中,當嘗試使用DateFormat.format 方法將給定物件格式化為日期時,您可能會遇到以下異常:

java.lang.IllegalArgumentException: Cannot format given Object as a Date

當您嘗試格式化的物件不是Date 實例時,會發生此錯誤。在您的情況下,您嘗試使用配置有「mm/yyyy」模式的 SimpleDateFormat 實例將字串(「2012-11-17T00:00:00.000-05:00」)格式化為日期。

解決方案

要解決此問題,您應該使用兩個SimpleDateFormat 物件:一個用於將輸入字串解析為Date 實例,另一個用於將結果Date 格式化為所需的格式:

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

此方法將解析和格式化操作分開,確保在嘗試使用指定模式對其進行格式化之前將輸入正確轉換為Date 實例。

以上是如何處理 Java 中的「無法將物件格式化為日期」異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn