Java中Calendar.DAY_OF_WEEK需要減一的原因


Java中對日期的處理需要用到Calendar類,其中有幾個方法在使用時需要新手注意。

1. 在獲取月份時,Calendar.MONTH + 1 的原因(Java中Calendar.MONTH返回的數值其實是當前月距離第一個月有多少個月份的數值)
Java中的月份遵循了羅馬歷中的規則:當時一年中的月份數量是不固定的,第一個月是JANUARY。而Java中Calendar.MONTH返回的數值其實是當前月距離第一個月有多少個月份的數值,JANUARY在Java中返回“0”,所以我們需要+1。

2. 在獲取星期幾 Calendar.DAY_OF_WEEK – 1 的原因
Java中Calendar.DAY_OF_WEEK其實表示:一周中的第幾天,所以他會受到 第一天是星期幾 的影響。
有些地區以星期日作為一周的第一天,而有些地區以星期一作為一周的第一天,這2種情況是需要區分的。
看下表的返回值

星期日為一周的第一天 SUN MON TUE WED THU FRI SAT
DAY_OF_WEEK返回值 1 2 3 4 5 6 7
星期一為一周的第一天 MON TUE WED THU FRI SAT SUN
DAY_OF_WEEK返回值 1 2 3 4 5 6 7

所以Calendar.DAY_OF_WEEK需要根據本地化設置的不同而確定是否需要 “-1”
Java中設置不同地區的輸出可以使用 Locale.setDefault(Locale.地區名) 來實現。

3. 獲取日期時 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一個月中的第幾天。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM