ホームページ >Java >&#&チュートリアル >Java の Date API で「2010-10-02T12:23:23Z」を解析すると「不正なパターン文字 'T'」がスローされるのはなぜですか?

Java の Date API で「2010-10-02T12:23:23Z」を解析すると「不正なパターン文字 'T'」がスローされるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-08 20:58:18619ブラウズ

Why Does Parsing

日付文字列を 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 サイトの他の関連記事を参照してください。

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