為什麼在SimpleDateFormat 中「Y」回傳2012,而「y」回傳2011
SimpleDateFormat 提供了使用不同模式格式化日期的選項。兩種常見模式「Y」和「y」分別代表週、年和年。然而,它們的行為可能會令人困惑。
'Y' 和'y' 之間的差異
'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中文網其他相關文章!