[解決済み] 新しい日付時刻APIを使用した日付の書式設定
2022-04-28 06:29:32
質問
新しい日付時刻APIで遊んでいたのですが、これを実行すると。
public class Test {
public static void main(String[] args){
String dateFormatted = LocalDate.now()
.format(DateTimeFormatter
.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(dateFormatted);
}
}
投げるのです。
Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay
at java.time.LocalDate.get0(LocalDate.java:680)
at java.time.LocalDate.getLong(LocalDate.java:659)
at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298)
at java.time.format.DateTimeFormatterBuilder$NumberPrinterParser.format(DateTimeFormatterBuilder.java:2543)
at java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2182)
at java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1745)
at java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1719)
at java.time.LocalDate.format(LocalDate.java:1685)
at Test.main(Test.java:23)
LocalDateクラスのソースコードを見てみると。
private int get0(TemporalField field) {
switch ((ChronoField) field) {
case DAY_OF_WEEK: return getDayOfWeek().getValue();
case ALIGNED_DAY_OF_WEEK_IN_MONTH: return ((day - 1) % 7) + 1;
case ALIGNED_DAY_OF_WEEK_IN_YEAR: return ((getDayOfYear() - 1) % 7) + 1;
case DAY_OF_MONTH: return day;
case DAY_OF_YEAR: return getDayOfYear();
case EPOCH_DAY: throw new UnsupportedTemporalTypeException("Invalid field 'EpochDay' for get() method, use getLong() instead");
case ALIGNED_WEEK_OF_MONTH: return ((day - 1) / 7) + 1;
case ALIGNED_WEEK_OF_YEAR: return ((getDayOfYear() - 1) / 7) + 1;
case MONTH_OF_YEAR: return month;
case PROLEPTIC_MONTH: throw new UnsupportedTemporalTypeException("Invalid field 'ProlepticMonth' for get() method, use getLong() instead");
case YEAR_OF_ERA: return (year >= 1 ? year : 1 - year);
case YEAR: return year;
case ERA: return (year >= 1 ? 1 : 0);
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
ドキュメントに記載されている通りです。
<ブロッククオートこのメソッドは、単純なパターンに基づいてフォーマッタを作成します。 の文字と記号で構成されています。
そして、これらの文字はすべて 定義済み .
では、なぜ
DateTimeFormatter.ofPattern
は、いくつかのパターン文字を使うことを許さないのでしょうか?
解決方法は?
LocalDate
は単なる日付を表し、DateTimeではありません。したがって、quot;HH:mm:ss"は
LocalDate
. そのため
LocalDateTime
日付と時刻の両方を表現したい場合は、そのようにします。
関連
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
maven プラグイン エラー プラグインの実行は、ライフサイクル構成ソリューションの対象外です。
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] 日付を通常の書式で印刷するには?
-
[解決済み] JavaでYYYY-MM-DD HH:MI:Sec.Millisecond フォーマットで現在の時刻を取得する方法は?
-
[解決済み] Windowsのコマンドラインで、現在の日付/時刻をファイル/フォルダー名で使用するために適切な形式で取得するにはどうすればよいですか?
-
[解決済み] 現在の日付と時刻を取得する方法
-
[解決済み】Java 8 の Date Time API (java.time) と Joda-Time の相違点
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スタイルが読み込まれず、ブラウザのコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
Java Exceptionが発生しました エラー解決
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
リソースの読み込みに失敗しました。サーバーはステータス500(内部サーバーエラー)で応答しました。
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
linux run jarfile Invalid or corrupt jarfile error.
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
ローカルリソースのロードが許可されていない場合の解決策
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決