ホームページ > Java > &#&チュートリアル > DateFormat が「指定されたオブジェクトを日付としてフォーマットできません」という例外をスローするのはなぜですか?

DateFormat が「指定されたオブジェクトを日付としてフォーマットできません」という例外をスローするのはなぜですか?

Linda Hamilton
リリース: 2024-11-03 07:14:03
オリジナル
407 人が閲覧しました

Why Does DateFormat Throw a

DateFormat は文字列オブジェクトを書式設定できません

Java では、DateFormat クラスは、文字列ではなく Date オブジェクトの書式設定と解析を目的として設計されています。提供されたコードは、日付の文字列表現 ("2012-11-17T00:00:00.000-05:00") が DateFormat.format() メソッドに直接渡される一般的なエラーを示しています。これにより、「指定されたオブジェクトを日付としてフォーマットできません」という例外が発生します。

2 つの SimpleDateFormat オブジェクトによるアプローチ

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート