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>
このコードでは:
以上がDateFormat が「指定されたオブジェクトを日付としてフォーマットできません」という例外をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。