ホームページ  >  記事  >  Java  >  Java で「オブジェクトを日付としてフォーマットできません」例外を処理する方法?

Java で「オブジェクトを日付としてフォーマットできません」例外を処理する方法?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 19:46:30820ブラウズ

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」) を日付としてフォーマットしようとしています。

解決策

この問題に対処するには、2 つの SimpleDateFormat オブジェクトを使用する必要があります。1 つは入力文字列を Date インスタンスに解析するためのもので、もう 1 つは結果の 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。