91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Calendar類如何在Java中使用

發布時間:2020-11-18 15:31:25 來源:億速云 閱讀:189 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關Calendar類如何在Java中使用 ,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Calendar類

從JDK1.1版本開始,在處理日期和時間時,系統推薦使用Calendar類進行實現。在設計上,Calendar類的功能要比Date類強大很多,而且在實現方式上也比Date類要復雜一些,下面就介紹一下Calendar類的使用。

Calendar類是一個抽象類,在實際使用時實現特定的子類的對象,創建對象的過程對程序員來說是透明的,只需要使用getInstance方法創建即可。

1、使用Calendar類代表當前時間

Calendar c = Calendar.getInstance();

由于Calendar類是抽象類,且Calendar類的構造方法是protected的,所以無法使用Calendar類的構造方法來創建對象,API中提供了getInstance方法用來創建對象。

使用該方法獲得的Calendar對象就代表當前的系統時間,由于Calendar類toString實現的沒有Date類那么直觀,所以直接輸出Calendar類的對象意義不大。

2、使用Calendar類代表指定的時間

Calendar c1 = Calendar.getInstance();
c1.set(2009, 3 - 1, 9);

使用Calendar類代表特定的時間,需要首先創建一個Calendar的對象,然后再設定該對象中的年月日參數來完成。

set方法的聲明為:

public final void set(int year,int month,int date)

以上示例代碼設置的時間為2009年3月9日,其參數的結構和Date類不一樣。Calendar類中年份的數值直接書寫,月份的值為實際的月份值減1,日期的值就是實際的日期值。

如果只設定某個字段,例如日期的值,則可以使用如下set方法:

public void set(int field,int value)

在該方法中,參數field代表要設置的字段的類型,常見類型如下:

Calendar.YEAR——年份
Calendar.MONTH——月份
Calendar.DATE——日期
Calendar.DAY_OF_MONTH——日期,和上面的字段完全相同
Calendar.HOUR——12小時制的小時數
Calendar.HOUR_OF_DAY——24小時制的小時數
Calendar.MINUTE——分鐘
Calendar.SECOND——秒
Calendar.DAY_OF_WEEK——星期幾

后續的參數value代表,設置成的值。例如:

c1.set(Calendar.DATE,10);

該代碼的作用是將c1對象代表的時間中日期設置為10號,其它所有的數值會被重新計算,例如星期幾以及對應的相對時間數值等。

3、獲得Calendar類中的信息

Calendar c2 = Calendar.getInstance();
//年份
int year = c2.get(Calendar.YEAR);
//月份
int month = c2.get(Calendar.MONTH) + 1;
//日期
int date = c2.get(Calendar.DATE);
//小時
int hour = c2.get(Calendar.HOUR_OF_DAY);
//分鐘
int minute = c2.get(Calendar.MINUTE);
//秒
int second = c2.get(Calendar.SECOND);
//星期幾
int day = c2.get(Calendar.DAY_OF_WEEK);
System.out.println("年份:" + year);
System.out.println("月份:" + month);
System.out.println("日期:" + date);
System.out.println("小時:" + hour);
System.out.println("分鐘:" + minute);
System.out.println("秒:" + second);
System.out.println("星期:" + day);

使用Calendar類中的get方法可以獲得Calendar對象中對應的信息,get方法的聲明如下:

public int get(int field)

其中參數field代表需要獲得的字段的值,字段說明和上面的set方法保持一致。需要說明的是,獲得的月份為實際的月份值減1,獲得的星期的值和Date類不一樣。在Calendar類中,周日是1,周一是2,周二是3,依次類推。

4、其它方法說明

其實Calendar類中還提供了很多其它有用的方法,下面簡單的介紹幾個常見方法的使用。

a、add方法

public abstract void add(int field,int amount)

該方法的作用是在Calendar對象中的某個字段上增加或減少一定的數值,增加是amount的值為正,減少時amount的值為負。

例如在計算一下當前時間100天以后的日期,代碼如下:

Calendar c3 = Calendar.getInstance();
c3.add(Calendar.DATE, 100);
int year1 = c3.get(Calendar.YEAR);
//月份
int month2 = c3.get(Calendar.MONTH) + 1;
//日期
int date1 = c3.get(Calendar.DATE);
System.out.println(year1 + "年" + month2 + "月" + date1 + "日");

這里add方法是指在c3對象的Calendar.DATE,也就是日期字段上增加100,類內部會重新計算該日期對象中其它各字段的值,從而獲得100天以后的日期,例如程序的輸出結果可能為:

2009年6月17日

b、after方法

public boolean after(Object when)

該方法的作用是判斷當前日期對象是否在when對象的后面,如果在when對象的后面則返回true,否則返回false。例如:

Calendar c4 = Calendar.getInstance();
c4.set(2009, 10 - 1, 10);
Calendar c5 = Calendar.getInstance();
c5.set(2010, 10 - 1, 10);
boolean b = c5.after(c4);
System.out.println(b);

在該示例代碼中對象c4代表的時間是2009年10月10號,對象c5代表的時間是2010年10月10號,則對象c5代表的日期在c4代表的日期之后,所以after方法的返回值是true。

另外一個類似的方法是before,該方法是判斷當前日期對象是否位于另外一個日期對象之前。

c、getTime方法

public final Date getTime(){

該方法的作用是將Calendar類型的對象轉換為對應的Date類對象,兩者代表相同的時間點。

類似的方法是setTime,該方法的作用是將Date對象轉換為對應的Calendar對象,該方法的聲明如下:

public final void setTime(Date date)

轉換的示例代碼如下:

Date d = new Date();
Calendar c6 = Calendar.getInstance();
//Calendar類型的對象轉換為Date對象
Date d1 = c6.getTime();
//Date類型的對象轉換為Calendar對象
Calendar c7 = Calendar.getInstance();
c7.setTime(d);
}

5、Calendar對象和相對時間之間的互轉

Calendar c8 = Calendar.getInstance();
long t = 1252785271098L;
//將Calendar對象轉換為相對時間
long t1 = c8.getTimeInMillis();
//將相對時間轉換為Calendar對象
Calendar c9 = Calendar.getInstance();
c9.setTimeInMillis(t1);

在轉換時,使用Calendar類中的getTimeInMillis方法可以將Calendar對象轉換為相對時間。在將相對時間轉換為Calendar對象時,首先創建一個Calendar對象,然后再使用Calendar類的setTimeInMillis方法設置時間即可。

關于Calendar類如何在Java中使用 就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北碚区| 民乐县| 庆城县| 平原县| 察隅县| 都匀市| 田林县| 绥宁县| 余江县| 怀来县| 新和县| 麻栗坡县| 扶沟县| 鹿泉市| 肃南| 威信县| 永泰县| 舒城县| 苏尼特左旗| 巢湖市| 东乌| 磐安县| 美姑县| 德安县| 仪陇县| 温州市| 清远市| 南投县| 武义县| 柘城县| 东平县| 福州市| 宜章县| 龙门县| 望城县| 商城县| 龙泉市| 固阳县| 葵青区| 建始县| 江油市|