首頁 >Java >java教程 >為什麼 `SimpleDateFormat` 的「Y」回傳 2012,而「y」回傳 2011?

為什麼 `SimpleDateFormat` 的「Y」回傳 2012,而「y」回傳 2011?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-28 02:52:13512瀏覽

Why Does `SimpleDateFormat`'s

為什麼在SimpleDateFormat 中「Y」回傳2012,而「y」回傳2011

SimpleDateFormat 提供了使用不同模式格式化日期的選項。兩種常見模式「Y」和「y」分別代表週、年和年。然而,它們的行為可能會令人困惑。

'Y' 和'y' 之間的差異

  • 'y': 代表日曆年,通常範圍從00到99。它在每個日曆開始時重置為 00 year.
  • 'Y': 表示年份中的第幾週,與 WEEK_OF_YEAR 週期一致。週年紀念可能與日曆年重疊,如 Java 文件所述:

    週年與 WEEK_OF_YEAR 週期同步。第一周和最後一周(含)之間的所有周都具有相同的周年值。因此,一週的第一天和最後一天可能有不同的日曆年值。

範例說明

在給定的範例中,「y」回傳2011,因為目前日期是2012 年1 月上旬。但是,「Y」返回 2012,因為包含 2012 年 1 月的周年(WEEK_OF_YEAR 週期)延伸到 2011 年底。文件解釋說,日曆年的第一天可能屬於上一周年。

範例程式碼

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn