日付文字列を 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";
補足:
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);
これらのメソッドのいずれかを適用します。これにより、時刻区切り文字として「T」文字を使用した日付文字列を正常に解析できるようになります。
以上がJava で「T」を含む日付文字列を解析すると「不正なパターン文字 'T'」例外がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。