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

前言

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

1. 在獲取當前日期在一年當中是第幾月份時,Calendar.MONTH + 1 的原因

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

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

4. 舉例說明

import java.util.Calendar;
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        Date date = new Date();// 2019/11/25, 星期一
        c.setTime(date);//設置日期
        System.out.println(c.get(Calendar.DAY_OF_MONTH)); //輸出25
        System.out.println(c.get(Calendar.DAY_OF_WEEK));// 輸出2, 應減-1
        System.out.println(c.get(Calendar.MONTH));//輸出10, 應加1
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章