ホームページ >Java >&#&チュートリアル >「SimpleDateFormat」の「Y」は 2012 を返し、「y」は 2011 を返すのはなぜですか?

「SimpleDateFormat」の「Y」は 2012 を返し、「y」は 2011 を返すのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-28 02:52:13498ブラウズ

Why Does `SimpleDateFormat`'s

SimpleDateFormat で 'Y' が 2012 を返すのに対し、'y' は 2011 を返す理由

SimpleDateFormat には、さまざまなパターンを使用して日付をフォーマットするオプションが用意されています。 2 つの一般的なパターン「Y」と「y」は、それぞれ週の年と年を表します。ただし、それらの動作は混乱を招く可能性があります。

'Y' と 'y' の違い

  • 'y': を表します。暦年。通常は 00 から 99 の範囲です。各暦の初めに 00 にリセットされます。 year.
  • 'Y': WEEK_OF_YEAR サイクルと一致する週の年を表します。 Java ドキュメントで説明されているように、週の年は暦年と重なることがあります。

    週の年は WEEK_OF_YEAR サイクルと同期します。最初の週と最後の週の間のすべての週 (両端を含む) は、同じ週の年の値を持ちます。したがって、週の年の最初と最後の日は異なる暦年の値を持つ場合があります。

例の説明

指定された例では、現在の日付が 2012 年 1 月初旬であるため、「y」は 2011 を返します。 2012 年 1 月を含む週の年 (WEEK_OF_YEAR サイクル) が 2011 年末まで延長されるため、「Y」は 2012 を返します。ドキュメントでは、暦年の最初の日が前の週の年に属する可能性があると説明しています。

コード例

SimpleDateFormat sdf = new SimpleDateFormat("Y");
Date date = new Date(); // Current date

// Print the week year (2012)
System.out.println(sdf.format(date));

sdf = new SimpleDateFormat("y");

// Print the calendar year (2011)
System.out.println(sdf.format(date));

以上が「SimpleDateFormat」の「Y」は 2012 を返し、「y」は 2011 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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