ホームページ >Java >&#&チュートリアル >Java の Date API で「2010-10-02T12:23:23Z」を解析すると「不正なパターン文字 'T'」がスローされるのはなぜですか?
日付文字列を java.util.Date に解析中に無効なパターン文字「T」
質問:
次のような日付文字列を解析しようとするとJava Date API を使用して「2010-10-02T12:23:23Z」を実行すると、「java.lang.IllegalArgumentException: 不正なパターン文字 'T'」という例外がスローされます。これはなぜ発生しますか?また、文字列を手動で分割して解析する必要がありますか?
答え:
文字列内の「T」文字は時間を表します。セパレータが問題の原因です。これを解決するには、パターン文字列内の「T」文字を一重引用符 ('') でエスケープする必要があります。正しいパターンは「yyyy-MM-dd'T'hh:mm:ssZ」である必要があります。
例:
String date = "2010-10-02T12:23:23Z"; String pattern = "yyyy-MM-dd'T'hh:mm:ssZ"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { Date d = sdf.parse(date); System.out.println(d.getYear()); } catch (ParseException e) { e.printStackTrace(); }
または、Java 8 以降の場合は、次のようにすることをお勧めします。代わりに、Instant.parse を使用してください。これにより、日付を解析するためのより堅牢で最新のアプローチが提供されます。
Instant.parse("2015-04-28T14:23:38.521Z")
以上がJava の Date API で「2010-10-02T12:23:23Z」を解析すると「不正なパターン文字 'T'」がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。