ホームページ  >  記事  >  Java  >  Java の日付変換で間違った月が生成されるのはなぜですか?

Java の日付変換で間違った月が生成されるのはなぜですか?

DDD
DDDオリジナル
2024-11-06 08:14:02999ブラウズ

Why is My Java Date Conversion Producing the Wrong Month?

Java 日付形式変換の問題: 間違った月のレンダリング

問題が発生しました

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。