98

Javaでphp date()スタイルのフォーマットに相当するものはありますか? つまり、php では文字をバックスラッシュでエスケープして文字どおりに処理することができます。つまりyyyy \y\e\a\rは2010 yearになります。Java で同様のものは見つかりませんでした。すべての例は、組み込みの日付形式のみを扱っています。

特に、JCalendar日付ピッカーとそのdateFormatStringプロパティを扱います。

私のロケールでは、d. (日) 日後部分、m。(何年も)後何年かのパートなど。最悪の場合、文字列置換または正規表現を使用できますが、もっと簡単な方法があるでしょうか? 前もって感謝します!

4

5 に答える 5

178

確かに、SimpleDateFormatを使用すると、リテラル文字列を含めることができます。

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

 "hh 'o''clock' a, zzzz"    12 o'clock PM, Pacific Daylight Time
于 2010-01-26T08:05:19.513 に答える
28

完全を期すために、Java 8DateTimeFormatterもこれをサポートしています。

DateTimeFormatter.ofPattern("yyyy 'year'");
于 2018-04-05T08:29:03.690 に答える
6

java.util.Formatterに記載されているように String.format を使用できます。

Calendar c = ...;
String s = String.format("%tY year", c);
// -> s == "2010 year" or whatever the year actually is
于 2010-01-26T07:56:21.373 に答える
-4

java.text.SimpleDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); 
String formattedDate = formatter.format(date);

詳細については、こちらのリンク テキストをご覧ください

于 2010-01-26T08:02:32.900 に答える