83

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 を使用しないソリューションはありますか?

4

1 に答える 1

152

一重引用符で囲むTとうまくいくはずです:

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

ドキュメントからの引用(強調鉱山):

日付と時刻の形式は、日付と時刻のパターン文字列によって指定されます。日付と時刻のパターン文字列内で、引用符で囲まれていない文字 from 'A'to'Z'および from 'a'to'z'は、日付または時刻文字列の構成要素を表すパターン文字として解釈されます。解釈を避けるために、一重引用符 ( ) を使用してテキストを引用できます。' "''"一重引用符を表します。他のすべての文字は解釈されません。それらは、フォーマット中に出力文字列にコピーされるか、解析中に入力文字列と照合されます。

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

Date and Time Pattern            Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"     2001-07-04T12:08:56.235-0700  
于 2010-03-10T12:31:10.510 に答える