SimpleDateFormatのパターンを見てください。フォーマットが( "eee、dd。MMM yyyy")の場合、それを( "EEEE、dd。MMM yyyy")に変更します。
コードを投稿していないので、以下はエラーを生成する例です。
public static void main(String[] args) throws ParseException {
String date = new SimpleDateFormat("eee, dd. MMM yyyy").format(new SimpleDateFormat("yyyy-MM-dd").parse("2017-07-21"));
}
上記のプログラムを実行すると、次のエラーが発生します。スレッド「メイン」java.lang.IllegalArgumentExceptionがで 例外:問題を解決することは違法パターン文字「E」
、あなたは手紙eを活かしたパターンを変更する必要があります。また
String date = new SimpleDateFormat("EEEE, dd. MMM yyyy").format(new SimpleDateFormat("yyyy-MM-dd").parse("2017-07-21"));
が、ここではドキュメントを見て、https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.htmlは、日付と時刻のパターンセクションでは、それは言う:
日付と時刻の形式は、日付と時刻のパターン文字列で指定されています。日付と時刻のパターン文字列では、 'A'から 'Z'まで、 'a'から 'z'までの引用符で囲まれていない文字は、日付または時刻文字列の構成要素を表すパターン文字として解釈されます。解釈を避けるために、テキストは一重引用符( ')で引用できます。 ""は一重引用符を表します。その他の文字はすべて解釈されません。それらはフォーマット中に出力文字列に単純にコピーされるか、または解析中に入力文字列と照合されます。
文書に記載されているように、引用符で囲まれていない文字はパターン文字として扱われます。パターンとして扱われたくない場合は、引用符( 'e')を使って文字eを囲みます。
下記はデモンストレーションです。現在の日付の後に文字eを続けて現在の時刻を表示したい場合は、次のようにします。
SimpleDateFormat f =
new SimpleDateFormat("yyyy.MM.dd 'e' hh.mm.ss", Locale.ENGLISH);
System.out.println(f.format(new Date()));
上記のプログラムを実行すると、次のような出力が得られます。
2017.07.21 e 12.38.39
あなたは文字eをUNQUOTEます場合は、あなたがjava.lang.IllegalArgumentExceptionが得られます:不正なパターン文字 'E'は。
更新:文字Eは、曜日の曜日を表すのに使用されます。昼間の時間も印刷したい場合は、このように使用してください。
SimpleDateFormat f =
new SimpleDateFormat("yyyy.MM.dd EEEE hh.mm.ss zzz", Locale.ENGLISH);
System.out.println(f.format(new Date()));
O/P:2017.07.21 Friday 12.53.58 NPT
あなたはEでEEEEを交換した場合、出力は
O/Pになります:あなたは、文字 `e`がで行うことを期待していなかった何2017.07.21 Fri 12.53.58 NPT
['SimpleDateFormat'](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)パターン? – Andreas
私はこのコードを作っていない、私はそれを維持しなければならないとドキュメントがありますが、私はSimpleDateFormの使用を検索し、私は文字 'e'を使用して見つけることができません。 –
stacktraceはJSPタグ(おそらく ' ')の処理中に失敗したことを示しています。そのため、その不正なフォーマット文字列をJSPで調べる必要があります。 –
Andreas