1. ホーム
  2. java

[解決済み] SimpleDateFormatのパターン文字列でアルファベットを使用する

2023-06-03 04:11:13

質問

SimpleDateFormatのパターン文字列にアルファベットを含めることは可能でしょうか?

例えば時刻の前に'T'という文字が含まれるようなフォーマット文字列を作成しようとしています。

2003-11-15 T 09:30:47-05:00.

現在、私は yyyy-MM-ddhh:mm:ssZ をパターン文字列として使用しています。

に変更すると yyyy-MM-ddThh:mm:ssZ に変更すると、'A' から 'Z' と 'a' から 'z' が予約されているため、例外が発生します。

2つのDateFormatsを使用しない解決策はありますか?

どのように解決するのですか?

を囲むように T をシングルクォートで囲むとうまくいくはずです。

yyyy-MM-dd'T'hh:mm:ssZ

引用元 ドキュメント を引用しています (強調)。

日付と時刻の書式は、日付と時刻のパターン文字列で指定されます。日付と時刻のパターン文字列の中では、引用されていない文字が 'A' から 'Z' から 'a' から 'z' は、日付や時刻の文字列の構成要素を表すパターン文字として解釈されます。 テキストは一重引用符で囲んで ( ' ) を使って引用することができます。 "''" はシングルクォートを表します。その他の文字は解釈されず、単にフォーマット中に出力文字列にコピーされるか、パース中に入力文字列と照合されます。

あなたの特定のユースケースも例として含まれています。

Date and Time Pattern            Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"     2001-07-04T12:08:56.235-0700