溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Calendar日歷類如何在Java項(xiàng)目中使用

發(fā)布時(shí)間:2021-03-22 17:29:54 來(lái)源:億速云 閱讀:122 作者:Leah 欄目:編程語(yǔ)言

本篇文章為大家展示了 Calendar日歷類如何在Java項(xiàng)目中使用,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

java.util.Calendar 是日歷類,在Date后出現(xiàn),替換掉了許多Date的方法。該類將所有可能用到的時(shí)間信息封裝為靜態(tài)成員變量,方便獲取。日歷類就是方便獲取各個(gè)時(shí)間屬性的。Calendar類無(wú)法直接創(chuàng)建對(duì)象使用,里邊有一個(gè)靜態(tài)方法getInstance(),該方法返回了Calendar類的子類對(duì)象。Calendar類中提供很多成員常量,代表給定的日歷字段:具體如下圖

1

獲取方式

Calendar為抽象類,由于語(yǔ)言敏感性,Calendar類在創(chuàng)建對(duì)象時(shí)并非直接創(chuàng)建,而是通過(guò)靜態(tài)方法創(chuàng)建,返回子類對(duì)象,如下:

Calendar靜態(tài)方法

public static Calendar getInstance() :使用默認(rèn)時(shí)區(qū)和語(yǔ)言環(huán)境獲得一個(gè)日歷

//獲取Calendar類的子類對(duì)象
Calendar cal = Calendar.getInstance();

常用方法

根據(jù)Calendar類的API文檔,常用方法有:

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

package demo04;

import java.util.Calendar;

public class Demo01 {
  public static void main(String[] args) {
    //通過(guò)靜態(tài)方法創(chuàng)建,返回Calendar子類對(duì)象
    Calendar instance = Calendar.getInstance();
    /*
    public int get(int field):返回給定日歷字段的值。
    參數(shù):傳遞指定的日歷字段(YEAR,MONTH...)
    返回值:日歷字段代表的具體的值
   */
    System.out.print("現(xiàn)在是"+instance.get(Calendar.YEAR)+"年");
    //在Calendar類中,月份的表示是以0-11代表1-12月。
    System.out.print(instance.get(Calendar.MONTH)+"月");
    System.out.println(instance.get(Calendar.DAY_OF_MONTH)+"日");
  }
}

代碼執(zhí)行后的結(jié)果

2

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

package demo04;

import java.util.Calendar;

public class Demo02 {

  /*
    public void set(int field, int value):將給定的日歷字段設(shè)置為給定值。
    參數(shù):
      int field:傳遞指定的日歷字段(YEAR,MONTH...)
      int value:給指定字段設(shè)置的值
  */
  public static void main(String[] args) {
    //使用getInstance方法獲取Calendar對(duì)象
    Calendar c = Calendar.getInstance();
    //設(shè)置年為9999
    c.set(Calendar.YEAR, 9999);
    //設(shè)置月為9月
    c.set(Calendar.MONTH, 9);
    //設(shè)置日9日
    c.set(Calendar.DATE, 9);
    //獲取設(shè)置后的日期
    System.out.println("現(xiàn)在的日期是" + c.get(Calendar.YEAR) + "年" + c.get(Calendar.MONTH) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日");
    //同時(shí)設(shè)置年月日,可以使用set的重載方法
    c.set(8888, 8, 8);
    System.out.println("現(xiàn)在的日期是" + c.get(Calendar.YEAR) + "年" + c.get(Calendar.MONTH) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日");

  }
}

代碼執(zhí)行后的結(jié)果

3

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

package demo04;

import java.util.Calendar;

public class Demo03 {
  /*
    public abstract void add(int field, int amount):根據(jù)日歷的規(guī)則,為給定的日歷字段添加或減去指定的時(shí)間量。
    把指定的字段增加/減少指定的值
    參數(shù):
      int field:傳遞指定的日歷字段(YEAR,MONTH...)
      int amount:增加/減少指定的值
        正數(shù):增加
        負(fù)數(shù):減少
  */
  public static void main(String[] args) {
    //使用getInstance方法獲取Calendar對(duì)象
    Calendar c = Calendar.getInstance();
    //獲取當(dāng)前的日期
    System.out.println("現(xiàn)在的日期是" + c.get(Calendar.YEAR) + "年" + c.get(Calendar.MONTH) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日");
    //把年增加2年
    c.add(Calendar.YEAR, 2);
    //把月份減少3個(gè)月
    c.add(Calendar.MONTH, -3);
    //獲取設(shè)置后的日期
    System.out.println("現(xiàn)在的日期是" + c.get(Calendar.YEAR) + "年" + c.get(Calendar.MONTH) + "月" + c.get(Calendar.DAY_OF_MONTH) + "日");
  }
}

代碼執(zhí)行后的結(jié)果

4

public Date getTime() :返回一個(gè)表示此Calendar時(shí)間值(從歷元到現(xiàn)在的毫秒偏移量)的Date對(duì)象。

package demo04;

import java.util.Calendar;
import java.util.Date;
public class Demo04 {
  /*
    public Date getTime():返回一個(gè)表示此Calendar時(shí)間值(從歷元到現(xiàn)在的毫秒偏移量)的Date對(duì)象。
    把日歷對(duì)象,轉(zhuǎn)換為日期對(duì)象
   */
  public static void main(String[] args) {
    //使用getInstance方法獲取Calendar對(duì)象
    Calendar c = Calendar.getInstance();
    //日歷對(duì)象--->日期對(duì)象
    Date date = c.getTime();
    System.out.println(date);
  }
}

代碼執(zhí)行后的結(jié)果

5

注意事項(xiàng)

  • 西方星期的開(kāi)始為周日,中國(guó)為周一。

  • 在Calendar類中,月份的表示是以0-11代表1-2月。

  • 日期是有大小關(guān)系的,時(shí)間靠后,時(shí)間越大。

上述內(nèi)容就是 Calendar日歷類如何在Java項(xiàng)目中使用,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI