Java Calendar類的簡單學習


Calendar類概述

  1. java.util.Calendar類:是一個日歷類

  2. Calendar類是一個抽象類,里邊提供了很多操作日歷字段的方法。

    如:YEAR、 MONTH、 DAY OF MONTH、HOUR

  3. Calendar類無法直接創建對象使用,里邊有一個靜態方法叫 getInstance(),getInstance()方法返回了 Calendar類的子類對象。static Calendar getInstance()使用默認時區和語言環境獲得一個日歷。

Calender獲取對象的方式

使用靜態方法:Calendar.getInstance()

import java.util.Calendar;

public class Demo01Calendar {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar);
    }
}

Calender類的常用成員方法

public int get(int field)
// 返回給定日歷字段的值

public void set(int field, int value)
// 將給定的日歷字段設置為給定值。

public abstract void add(int field, int amount)
// 根據日歷的規則,為給定的日歷字段添加或減去指定的時間量。

public Date getTime()
// 返回一個表示此 Calendar時間值(從歷元到現在的亳秒偏移量)的Date對象。
成員方法的參數:
             int field:日歷類的字段,可以使用 Calendar類的靜態成員變量獲取
                       public static final int YEAR = 1                      年
                       public static final int MONTH = 2                     月
                       public static final int DATE=5                        一個月中的某一天
                       public static final int DAY_OF_ MONTH=5               一個月中的某一天
                       public static final int HOUR =10                      時
                       public static final int MINUTE =12                    分
                       public static final int SECOND =13                    秒

Calendar 類的簡單使用

get() 方法

返回給定日歷字段的值

import java.util.Calendar;

public class DemoCalendarGet {
    public static void main(String[] args) {
        // 首先使用getInstance()方法獲取calendar對象
        Calendar calendar = Calendar.getInstance();

        // 調用get方法獲取給定日歷字段的值
        System.out.println(
                "年:" + calendar.get(Calendar.YEAR) + "\n" +
                "月:" + calendar.get(Calendar.MONTH) + "\n" +
                "一個月中的某一天:" + calendar.get(Calendar.DATE) + "\n" +
                "一個月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH) + "\n" +
                "時:" + calendar.get(Calendar.HOUR) + "\n" +
                "分:" + calendar.get(Calendar.MINUTE) + "\n" +
                "秒:" + calendar.get(Calendar.SECOND)
        );
    }
}
輸出:
年:2020
月:0
一個月中的某一天:11
一個月中的某一天年:11
時:8
分:37
秒:31
說明:
當時日期、時間:2020年1月11日8時37分31秒
西方的月份:0-11
東方的月份:1-12

set() 方法:

將給定的日歷字段設置為給定值

import java.util.Calendar;

public class DemoCalendarSet {
    public static void main(String[] args) {
        // 首先使用getInstance()方法獲取calendar對象
        Calendar calendar = Calendar.getInstance();
        System.out.println("\n設置前");
        System.out.println(
                "年:" + calendar.get(Calendar.YEAR) + "\n" +
                "月:" + calendar.get(Calendar.MONTH) + "\n" +
                "一個月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
        );

        // 將年設置為 2008
        calendar.set(Calendar.YEAR, 2008);
        // 將月設置為 10
        calendar.set(Calendar.MONTH, 10);
        // 將日期設置為 3
        calendar.set(Calendar.DAY_OF_MONTH, 3);
        System.out.println("\n分別設置后");
        System.out.println(
                "年:" + calendar.get(Calendar.YEAR) + "\n" +
                "月:" + calendar.get(Calendar.MONTH) + "\n" +
                "一個月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
        );

        // 同時設置年月日
        calendar.set(1998, Calendar.SEPTEMBER, 25);
        System.out.println("\n同時設置后");
        System.out.println(
                "年:" + calendar.get(Calendar.YEAR) + "\n" +
                "月:" + calendar.get(Calendar.MONTH) + "\n" +
                "一個月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
        );
    }
}
輸出結果:

設置前
年:2020
月:0
一個月中的某一天:11

分別設置后
年:2008
月:10
一個月中的某一天:3

同時設置后
年:1998
月:8
一個月中的某一天:25

add() 方法

根據日歷的規則,為給定的日歷字段添加或減去指定的時間量。

import java.util.Calendar;

public class DemoCalendarAdd {
    public static void main(String[] args) {
        // 首先使用getInstance()方法獲取calendar對象
        Calendar calendar = Calendar.getInstance();
        System.out.println("\n變化前");
        System.out.println(
                "年:" + calendar.get(Calendar.YEAR) + "\n" +
                "月:" + calendar.get(Calendar.MONTH) + "\n" +
                "一個月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
        );

        // 把年減少兩年
        calendar.add(Calendar.YEAR, -2);
        // 把月份增加三個月
        calendar.add(Calendar.MONTH, 3);
        // 把日期增加10天
        calendar.add(Calendar.DAY_OF_MONTH, 10);
        System.out.println("\n變化后");
        System.out.println(
                "年:" + calendar.get(Calendar.YEAR) + "\n" +
                "月:" + calendar.get(Calendar.MONTH) + "\n" +
                "一個月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH)
        );
    }
}
輸出結果:

變化前
年:2020
月:0
一個月中的某一天:11

變化后
年:2018
月:3
一個月中的某一天:21

getTime() 方法

返回一個表示此 Calendar時間值(從歷元到現在的亳秒偏移量)的Date對象。

import java.util.Calendar;

public class DemoCalendarGetTime {
    public static void main(String[] args) {
        // 首先使用getInstance()方法獲取calendar對象
        Calendar calendar = Calendar.getInstance();

        // 返回一個表示calendar時間值(從歷元到現在的亳秒偏移量)的Date對象。
        System.out.println(
                calendar.getTime()
        );
    }
}
輸出結果:
Sat Jan 11 21:16:52 CST 2020


免責聲明!

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



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