激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java Calendar類常用示例_動力節(jié)點Java學院整理

Java Calendar類常用示例_動力節(jié)點Java學院整理

2020-09-21 15:22動力節(jié)點 Java教程

從JDK1.1版本開始,在處理日期和時間時,系統(tǒng)推薦使用Calendar類進行實現(xiàn)。接下來通過實例代碼給大家詳細介紹Java Calendar類相關知識,需要的朋友參考下吧

Calendar

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

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

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

?
1
Calendar c = Calendar.getInstance();

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

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

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

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

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

set方法的聲明為:

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

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

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

?
1
public void set(int field,int value)

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

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

后續(xù)的參數(shù)value代表,設置成的值。例如:

?
1
c1.set(Calendar.DATE,10);

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

3、獲得Calendar類中的信息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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方法的聲明如下:

?
1
public int get(int field)

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

4、其它方法說明

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

a、add方法

?
1
public abstract void add(int field,int amount)

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

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

?
1
2
3
4
5
6
7
8
Calendar c3 = Calendar.getInstance();
c3.add(Calendar.DATE, 100);
int year1 = c3.get(Calendar.YEAR);
//月份
int month1 = c3.get(Calendar.MONTH) + 1;
//日期
int date1 = c3.get(Calendar.DATE);
System.out.println(year1 + "年" + month1 + "月" + date1 + "日");

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

2009年6月17日

b、after方法

?
1
public boolean after(Object when)

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

?
1
2
3
4
5
6
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方法

?
1
public final Date getTime(){

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

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

?
1
public final void setTime(Date date)

轉(zhuǎn)換的示例代碼如下:

?
1
2
3
4
5
6
7
8
Date d = new Date();
Calendar c6 = Calendar.getInstance();
//Calendar類型的對象轉(zhuǎn)換為Date對象
Date d1 = c6.getTime();
//Date類型的對象轉(zhuǎn)換為Calendar對象
Calendar c7 = Calendar.getInstance();
c7.setTime(d);
}

5、Calendar對象和相對時間之間的互轉(zhuǎn)

?
1
2
3
4
5
6
7
Calendar c8 = Calendar.getInstance();
long t = 1252785271098L;
//將Calendar對象轉(zhuǎn)換為相對時間
long t1 = c8.getTimeInMillis();
//將相對時間轉(zhuǎn)換為Calendar對象
Calendar c9 = Calendar.getInstance();
c9.setTimeInMillis(t1);

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

以上所述是小編給大家介紹的Java Calendar類常用示例_動力節(jié)點Java學院整理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網(wǎng)站的支持!

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 色播av在线 | 久久精品污 | 人成久久| 日韩av一二三区 | 亚洲免费网站 | 91快色视频| 91网视频在线观看 | 黄污在线看 | 国产精品久久久久久久久岛 | 欧美视频99 | 黄色网络免费看 | 日韩大片在线永久观看视频网站免费 | 九九热在线视频免费观看 | www.国产.com| 在线亚州 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 | 亚洲精品动漫在线观看 | 久久国产精品免费视频 | 中国毛片在线观看 | 黄色片免费在线播放 | 91成人免费视频 | 天天鲁在线视频免费观看 | 亚洲成人福利在线 | 亚洲精品午夜在线 | 日韩黄色av网站 | 成人黄色短视频在线观看 | 欧美成人精品一区 | 国产高潮好爽受不了了夜色 | 日韩精品无码一区二区三区 | 久久久久九九九女人毛片 | 日韩欧美精品电影 | 国产亚洲精品久久久久久久久久 | 牛牛热这里只有精品 | 久久久久久久久亚洲精品 | 成人爱爱电影 | hdbbwsexvideo| 午夜人体 | 天天夜夜操操 | 国产精品欧美久久久久一区二区 | 久草在线视频网 | 偿还电影免费看 |