最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Calendar類(lèi)常用示例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年04月28日 09:33:04   投稿:mrr  
從JDK1.1版本開(kāi)始,在處理日期和時(shí)間時(shí),系統(tǒng)推薦使用Calendar類(lèi)進(jìn)行實(shí)現(xiàn)。接下來(lái)通過(guò)實(shí)例代碼給大家詳細(xì)介紹Java Calendar類(lèi)相關(guān)知識(shí),需要的朋友參考下吧

Calendar類(lèi)

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

Calendar類(lèi)是一個(gè)抽象類(lèi),在實(shí)際使用時(shí)實(shí)現(xiàn)特定的子類(lèi)的對(duì)象,創(chuàng)建對(duì)象的過(guò)程對(duì)程序員來(lái)說(shuō)是透明的,只需要使用getInstance方法創(chuàng)建即可。

1、使用Calendar類(lèi)代表當(dāng)前時(shí)間

Calendar c = Calendar.getInstance();

由于Calendar類(lèi)是抽象類(lèi),且Calendar類(lèi)的構(gòu)造方法是protected的,所以無(wú)法使用Calendar類(lèi)的構(gòu)造方法來(lái)創(chuàng)建對(duì)象,API中提供了getInstance方法用來(lái)創(chuàng)建對(duì)象。

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

2、使用Calendar類(lèi)代表指定的時(shí)間

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

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

set方法的聲明為:

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

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

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

public void set(int field,int value)

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

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

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

c1.set(Calendar.DATE,10);

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

3、獲得Calendar類(lèi)中的信息

Calendar c2 = Calendar.getInstance();
//年份
int year = c2.get(Calendar.YEAR);
//月份
int month = c2.get(Calendar.MONTH) + 1;
//日期
int date = c2.get(Calendar.DATE);
//小時(shí)
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("小時(shí):" + hour);
System.out.println("分鐘:" + minute);
System.out.println("秒:" + second);
System.out.println("星期:" + day);

使用Calendar類(lèi)中的get方法可以獲得Calendar對(duì)象中對(duì)應(yīng)的信息,get方法的聲明如下:

public int get(int field)

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

4、其它方法說(shuō)明

其實(shí)Calendar類(lèi)中還提供了很多其它有用的方法,下面簡(jiǎn)單的介紹幾個(gè)常見(jiàn)方法的使用。

a、add方法

public abstract void add(int field,int amount)

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

例如在計(jì)算一下當(dāng)前時(shí)間100天以后的日期,代碼如下:

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對(duì)象的Calendar.DATE,也就是日期字段上增加100,類(lèi)內(nèi)部會(huì)重新計(jì)算該日期對(duì)象中其它各字段的值,從而獲得100天以后的日期,例如程序的輸出結(jié)果可能為:

2009年6月17日

b、after方法

public boolean after(Object when)

該方法的作用是判斷當(dāng)前日期對(duì)象是否在when對(duì)象的后面,如果在when對(duì)象的后面則返回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);

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

另外一個(gè)類(lèi)似的方法是before,該方法是判斷當(dāng)前日期對(duì)象是否位于另外一個(gè)日期對(duì)象之前。

c、getTime方法

public final Date getTime(){

該方法的作用是將Calendar類(lèi)型的對(duì)象轉(zhuǎn)換為對(duì)應(yīng)的Date類(lèi)對(duì)象,兩者代表相同的時(shí)間點(diǎn)。

類(lèi)似的方法是setTime,該方法的作用是將Date對(duì)象轉(zhuǎn)換為對(duì)應(yīng)的Calendar對(duì)象,該方法的聲明如下:

public final void setTime(Date date)

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

Date d = new Date();
Calendar c6 = Calendar.getInstance();
//Calendar類(lèi)型的對(duì)象轉(zhuǎn)換為Date對(duì)象
Date d1 = c6.getTime();
//Date類(lèi)型的對(duì)象轉(zhuǎn)換為Calendar對(duì)象
Calendar c7 = Calendar.getInstance();
c7.setTime(d);
}

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

Calendar c8 = Calendar.getInstance();
long t = 1252785271098L;
//將Calendar對(duì)象轉(zhuǎn)換為相對(duì)時(shí)間
long t1 = c8.getTimeInMillis();
//將相對(duì)時(shí)間轉(zhuǎn)換為Calendar對(duì)象
Calendar c9 = Calendar.getInstance();
c9.setTimeInMillis(t1);

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

以上所述是小編給大家介紹的Java Calendar類(lèi)常用示例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 五個(gè)很實(shí)用的IDEA使用技巧分享

    五個(gè)很實(shí)用的IDEA使用技巧分享

    IntelliJ IDEA 是一款優(yōu)秀的 Java 集成開(kāi)發(fā)環(huán)境,它提供了許多強(qiáng)大的功能和快捷鍵,可以幫助開(kāi)發(fā)者提高編碼效率和質(zhì)量,本文就在為你介紹博主常用的五個(gè)IntelliJ IDEA使用技巧,希望能夠給你帶來(lái)一些工作效率上的提升
    2023-10-10
  • SpringBoot詳解如何整合Redis緩存驗(yàn)證碼

    SpringBoot詳解如何整合Redis緩存驗(yàn)證碼

    本文主要介紹了SpringBoot集成Redis實(shí)現(xiàn)驗(yàn)證碼的緩存簡(jiǎn)單案例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • SpringBoot的@RestControllerAdvice作用詳解

    SpringBoot的@RestControllerAdvice作用詳解

    這篇文章主要介紹了SpringBoot的@RestControllerAdvice作用詳解,@RestContrllerAdvice是一種組合注解,由@ControllerAdvice,@ResponseBody組成,本質(zhì)上就是@Component,需要的朋友可以參考下
    2024-01-01
  • 解析SpringBoot?搭建基于?MinIO?的高性能存儲(chǔ)服務(wù)的問(wèn)題

    解析SpringBoot?搭建基于?MinIO?的高性能存儲(chǔ)服務(wù)的問(wèn)題

    Minio是Apache?License?v2.0下發(fā)布的對(duì)象存儲(chǔ)服務(wù)器,使用MinIO構(gòu)建用于機(jī)器學(xué)習(xí),分析和應(yīng)用程序數(shù)據(jù)工作負(fù)載的高性能基礎(chǔ)架構(gòu)。這篇文章主要介紹了SpringBoot?搭建基于?MinIO?的高性能存儲(chǔ)服務(wù),需要的朋友可以參考下
    2022-03-03
  • Java Assert.assertEquals案例詳解

    Java Assert.assertEquals案例詳解

    這篇文章主要介紹了Java Assert.assertEquals案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • java如何讀取某個(gè)文件夾中的全部文件(包括子文件夾)

    java如何讀取某個(gè)文件夾中的全部文件(包括子文件夾)

    這篇文章主要介紹了java如何讀取某個(gè)文件夾中的全部文件(包括子文件夾),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 配置IDEA中java項(xiàng)目配置swagger全過(guò)程

    配置IDEA中java項(xiàng)目配置swagger全過(guò)程

    這篇文章主要介紹了配置IDEA中java項(xiàng)目配置swagger全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Spring 跨域配置請(qǐng)求詳解

    Spring 跨域配置請(qǐng)求詳解

    這篇文章主要介紹了Spring 跨域配置請(qǐng)求詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Spring Boot自定義配置實(shí)現(xiàn)IDE自動(dòng)提示功能

    Spring Boot自定義配置實(shí)現(xiàn)IDE自動(dòng)提示功能

    這篇文章主要介紹了Spring Boot自定義配置實(shí)現(xiàn)IDE自動(dòng)提示功能,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Java集合之Map接口與實(shí)現(xiàn)類(lèi)詳解

    Java集合之Map接口與實(shí)現(xiàn)類(lèi)詳解

    這篇文章主要為大家詳細(xì)介紹了Java集合中的Map接口與實(shí)現(xiàn)類(lèi),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,感興趣的可以了解一下
    2022-12-12

最新評(píng)論

磐安县| 安顺市| 民和| 菏泽市| 玉田县| 诸城市| 景泰县| 峡江县| 简阳市| 秦安县| 乡宁县| 万荣县| 丰镇市| 永春县| 大足县| 天峨县| 遂平县| 微山县| 徐汇区| 广饶县| 淳安县| 武邑县| 错那县| 义马市| 乌兰浩特市| 卢湾区| 米泉市| 九龙城区| 宜川县| 米脂县| 安阳市| 开鲁县| 合江县| 海安县| 榆林市| 黑河市| 眉山市| 海伦市| 元谋县| 林西县| 孟州市|