SimpleDateFormat 形式: 'Y' と 'y'
Java SimpleDateFormat クラスを使用すると、さまざまなパターンを使用して日付と時刻を書式設定できます。似ているように見える 2 つのパターン、'Y' と 'y' には、実際には予期しない結果につながる可能性のある微妙な違いがあります。
'Y' - Week Year
「Y」パターンは週の年をフォーマットします。週年は WEEK_OF_YEAR サイクルに合わせて調整されます。つまり、そのサイクル内のすべての週が同じ週年の値を持つことになります。ただし、週の最初と最後の日は暦年が異なる場合があります。
たとえば、週の最初の日が月曜日で、最初の週の最小日数が 4 に設定されている場合 ( ISO 8601 標準)、2018 年の第 1 週は 2017 年 12 月 29 日に始まり、2018 年 1 月 4 日に終わります。この場合、2018 年の最後の 3 日間の週が年になります。 2017 年は 2018 年とみなされます。
'y' - Year
一方、'y' パターンは暦年の書式を設定します。これは、週周期に関係なく、グレゴリオ暦内の年番号を表します。
サンプル比較
System.out.println(new SimpleDateFormat("Y").format(new Date())); // prints 2012 System.out.println(new SimpleDateFormat("y").format(new Date())); // prints 2011
この例では、'Y' は 2012 を返します。現在の日付は 2018 年の第 1 週内にあり、2017 年の最後の 3 日間の週も考慮されます。 2018。ただし、「y」は暦年のみを考慮するため、2011 年を返します。第 1 週の始まりは 2017 年です。
以上がJava の SimpleDateFormat の「Y」と「y」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。