web-dev-qa-db-ja.com

SimpleDateFormatパターン文字列でのアルファベット文字の使用

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つのDateFormatの使用を伴わない解決策はありますか?

72
Gordon

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  
129
Joey