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

Java の日付変換の結果が間違った月になるのはなぜですか?

DDD
DDDオリジナル
2024-11-10 05:21:02290ブラウズ

Why does my Java date conversion result in an incorrect month?

Java 日付形式変換の問題: 変換時の月が正しくありません

Java では、異なる形式間で日付を変換する場合、正しい形式を使用することが重要です正確な変換を保証するための形式指定子。この場合、問題は入力日付形式文字列内の形式指定子が間違っていることが原因で発生します。

問題:

次のコード スニペットは、日付を形式指定子から変換しようとします。 「yyyy-mm-dd」の形式を「dd MMMM yyyy」の形式に変更します。ただし、結果の月の変換は正しくありません。

String dateStr = "2011-12-15";
String fromFormat = "yyyy-mm-dd";
String toFormat = "dd MMMM yyyy";

try {
    DateFormat fromFormatter = new SimpleDateFormat(fromFormat);
    Date date = (Date) fromFormatter.parse(dateStr);

    DateFormat toformatter = new SimpleDateFormat(toFormat);
    String result = toformatter.format(date);
} catch (ParseException e) {
    e.printStackTrace();
}

期待される結果:

"15 December 2011"

実際の結果:

"15 January 2011"

不正な形式指定子:

この問題は、入力での "mm" の使用によって発生します。日付形式の文字列。 Java SimpleDateFormat では、「mm」は月ではなく分を表します。月を指定する場合、正しい形式指定子は「MM」です。

解決策:

この問題を解決するには、入力日付形式文字列を更新して「MM」を使用するだけです。月の場合:

String fromFormat = "yyyy-MM-dd";

正しい結果:

この変更を加えた後、コード スニペットは正しい月の変換「2011 年 12 月 15 日」を生成します。

以上がJava の日付変換の結果が間違った月になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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