ホームページ > Java > &#&チュートリアル > Java で「T」を含む日付文字列を解析すると「不正なパターン文字 'T'」例外がスローされるのはなぜですか?

Java で「T」を含む日付文字列を解析すると「不正なパターン文字 'T'」例外がスローされるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-08 14:54:12
オリジナル
540 人が閲覧しました

Why Does Parsing a Date String with

日付文字列を java.util.Date に解析するときに不正なパターン文字 'T'

日付文字列を標準に解析しようとしたときJava Date API を使用して日付を取得すると、「不正なパターン文字 'T'」というメッセージが表示される例外が発生する場合があります。このエラーは、解析用に指定されたパターンに文字「T」が含まれているために発生しますが、これは有効なパターン文字として認識されません。

原因:

「T」日付文字列内の文字は、日付コンポーネントと時刻コンポーネントの間の時刻区切り文字を表します。ただし、デフォルトの SimpleDateFormat パターンにはこの文字は含まれません。その結果、パーサーはそれを不正なパターン文字として解釈します。

解決策:

この問題を解決するには、主に 2 つのアプローチがあります:

1.カスタム パターン:

時間区切り文字として「T」文字を含むカスタム パターンを指定できます。例:

String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";
ログイン後にコピー

2.一重引用符のエスケープ:

または、一重引用符を使用して「T」文字をエスケープすることもできます。このようにすると、パターン文字ではなくリテラル文字として扱われます。

String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";
ログイン後にコピー

補足:

  • Java 8 以降では、 DateTimeFormatter クラスを使用すると、日付文字列をより柔軟かつ簡潔に解析できます。例:
String input = "2010-10-02T12:23:23Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
LocalDateTime dateTime = LocalDateTime.parse(input, formatter);
ログイン後にコピー
  • 日付文字列を解析するときは、TimeZone を UTC または関連するタイム ゾーンに設定することを忘れないでください。

これらのメソッドのいずれかを適用します。これにより、時刻区切り文字として「T」文字を使用した日付文字列を正常に解析できるようになります。

以上がJava で「T」を含む日付文字列を解析すると「不正なパターン文字 'T'」例外がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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