Java を使用して日付をある形式から別の形式に変換しようとすると、ユーザーは、月が正しく表示されないという問題に遭遇しました。具体的には、「yyyy-mm-dd」のような形式から「dd MMMM yyyy」に変換すると、結果の月は次の月として表示されます(例:「01/12/21」は「01」ではなく「01 January 2021」になります) 2021 年 12 月").
この問題の根本原因は、fromFormat 文字列の不正な指定にあります。示されている例では、fromFormat は「yyyy-mm-dd」として定義されています。ただし、Java SimpleDateFormat クラスの「mm」は月ではなく分を表します。月を正しく表すには、形式指定子は「MM」である必要があります。
この問題を解決するには、コードを次のように更新する必要があります:
String dateStr = "2011-12-15"; String fromFormat = "yyyy-MM-dd"; String toFormat = "dd MMMM yyyy"; try { DateFormat fromFormatter = new SimpleDateFormat(fromFormat); Date date = fromFormatter.parse(dateStr); DateFormat toFormatter = new SimpleDateFormat(toFormat); String result = toFormatter.format(date); System.out.println(result); // Prints "15 December 2011" } catch (ParseException e) { e.printStackTrace(); }
以上がJava の日付変換で間違った月が生成されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。