首頁 > Java > java教程 > 主體

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

Susan Sarandon
發布: 2024-10-30 19:46:30
原創
831 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!