欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中Calendar類的一些常用方法小結(jié)

 更新時(shí)間:2021年11月26日 09:55:25   作者:yx0628  
項(xiàng)目當(dāng)中,我們經(jīng)常會(huì)涉及到對(duì)時(shí)間的處理,Date類最主要的作用就是獲得當(dāng)前時(shí)間,同時(shí)這個(gè)類里面也具有設(shè)置時(shí)間以及一些其他的功能,但更推薦使用 Calendar 類進(jìn)行時(shí)間和日期的處理,這篇文章主要給大家介紹了關(guān)于Java中Calendar類的一些常用方法,需要的朋友可以參考下

原理簡介

Java中提供了Calendar這個(gè)專門用于對(duì)日歷進(jìn)行操作的類,那么這個(gè)類有什么特殊的地方呢,首先我們來看Calendar的聲明:

public abstract class Calendar 

	extends Objectimplements Serializable, Cloneable, Comparable<Calendar>{}

該類被abstract所修飾,說明該類是一個(gè)抽象類,所以不能直接通過new該類對(duì)象來進(jìn)行實(shí)例化,為此Calendar類提供了兩種實(shí)例化方式:

方法1:通過創(chuàng)建其子類的對(duì)象(GregorianCalendar)的對(duì)象來進(jìn)行實(shí)例化

方法2:調(diào)用其靜態(tài)方法getInstance()方法來進(jìn)行實(shí)例化,以獲得此類型的一個(gè)通用的對(duì)象,getInstance方法返回一個(gè)Calendar對(duì)象(該對(duì)象為Calendar的子類所創(chuàng)建的對(duì)象),其日歷字段已由當(dāng)前日期和時(shí)間初始化(通常都選擇方法2來進(jìn)行實(shí)例化。)

Calendar nowTime = Calendar.getInstance();//使用默認(rèn)時(shí)區(qū)和語言環(huán)境獲得一個(gè)日歷

?Calendar 類常用方法的記錄:

獲取時(shí)間

    // 使用默認(rèn)時(shí)區(qū)和語言環(huán)境獲得一個(gè)日歷
    Calendar cal = Calendar.getInstance();
    // 賦值時(shí)年月日時(shí)分秒常用的6個(gè)值,注意月份下標(biāo)從0開始,所以取月份要+1
    System.out.println("年:" + cal.get(Calendar.YEAR));
    System.out.println("月:" + (cal.get(Calendar.MONTH) + 1));       
    System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
    System.out.println("時(shí):" + cal.get(Calendar.HOUR_OF_DAY));
    System.out.println("分:" + cal.get(Calendar.MINUTE));
    System.out.println("秒:" + cal.get(Calendar.SECOND));

今天是 2018 年 2 月 12 日,運(yùn)行結(jié)果:

年:2018

月:2

日:12

時(shí):15

分:57

秒:39

設(shè)置時(shí)間

月份的下標(biāo)從 0 開始,設(shè)置時(shí)同樣需要注意,比如我們?cè)O(shè)置為 2 月 15 日除夕當(dāng)晚的倒計(jì)時(shí)的最后一秒: 2018-02-15 23:59:59

可以這樣:

    Calendar cal = Calendar.getInstance();
    // 如果想設(shè)置為某個(gè)日期,可以一次設(shè)置年月日時(shí)分秒,由于月份下標(biāo)從0開始賦值月份要-1
    // cal.set(year, month, date, hourOfDay, minute, second);
    cal.set(2018, 1, 15, 23, 59, 59);

或者也可以單個(gè)字段一一設(shè)置:

    // 或者6個(gè)字段分別進(jìn)行設(shè)置,由于月份下標(biāo)從0開始賦值月份要-1
    cal.set(Calendar.YEAR, 2018);
    cal.set(Calendar.MONTH, Calendar.FEBRUARY);
    cal.set(Calendar.DAY_OF_MONTH, 15);
    cal.set(Calendar.HOUR_OF_DAY, 23);
    cal.set(Calendar.MINUTE, 59);
    cal.set(Calendar.SECOND, 59);
    System.out.println(cal.getTime());

打印的時(shí)間結(jié)果為:

? ? Thu Feb 15 23:59:59 CST 2018

時(shí)間計(jì)算

add方法:

比如在除夕當(dāng)晚最后一秒,add 一秒:

    Calendar cal = Calendar.getInstance();
    System.out.println(cal.getTime());
    cal.set(2018, 1, 15, 23, 59, 59);
    cal.add(Calendar.SECOND, 1);
    System.out.println(cal.getTime());

打印時(shí)間結(jié)果如下,日期會(huì)自動(dòng)進(jìn)入下一天:

? ? Thu Feb 15 23:59:59 CST 2018

? ? Fri Feb 16 00:00:00 CST 2018

再比如 1 月 31 號(hào)的時(shí)候,月份加一,會(huì)出現(xiàn)怎樣結(jié)果:

    Calendar cal = Calendar.getInstance();
    cal.set(2018, 1, 31, 8, 0, 0);
    System.out.println(cal.getTime());
    cal.add(Calendar.MONTH, 1);
    System.out.println(cal.getTime());

運(yùn)行結(jié)果:

? ? Wed Jan 31 08:00:00 CST 2018

? ? Wed Feb 28 08:00:00 CST 2018

總結(jié)

到此這篇關(guān)于Java中Calendar類的一些常用方法的文章就介紹到這了,更多相關(guān)Java?Calendar類常用方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java線程創(chuàng)建與Thread類的使用方法

    Java線程創(chuàng)建與Thread類的使用方法

    這篇文章主要介紹了Java線程創(chuàng)建與Thread類的使用方法,圍繞java多線程中Thread類的使用以及有關(guān)線程對(duì)象創(chuàng)建和常用方法的相關(guān)資料展開詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的下伙伴可以參考一下
    2022-06-06
  • Java手寫線程池之向JDK線程池進(jìn)發(fā)

    Java手寫線程池之向JDK線程池進(jìn)發(fā)

    在前面的文章自己動(dòng)手寫乞丐版線程池中,我們寫了一個(gè)非常簡單的線程池實(shí)現(xiàn),這個(gè)只是一個(gè)非常簡單的實(shí)現(xiàn),在本篇文章當(dāng)中我們將要實(shí)現(xiàn)一個(gè)和JDK內(nèi)部實(shí)現(xiàn)的線程池非常相似的線程池,需要的可以了解一下
    2022-10-10
  • Java堆空間爆滿導(dǎo)致宕機(jī)的問題分析及解決

    Java堆空間爆滿導(dǎo)致宕機(jī)的問題分析及解決

    團(tuán)隊(duì)有一個(gè)服務(wù),一直運(yùn)行的好好的,突然訪問異常了,先是請(qǐng)求超時(shí),然后直接無法訪問,本文將給大家介紹Java堆空間爆滿導(dǎo)致宕機(jī)的問題分析及解決,需要的朋友可以參考下
    2024-02-02
  • Spring遠(yuǎn)程加載配置的實(shí)現(xiàn)方法詳解

    Spring遠(yuǎn)程加載配置的實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Spring遠(yuǎn)程加載配置的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03
  • Java中Http連接的兩種方式(小結(jié))

    Java中Http連接的兩種方式(小結(jié))

    這篇文章主要介紹了Java中Http連接的兩種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java Socket聊天室編程(二)之利用socket實(shí)現(xiàn)單聊聊天室

    Java Socket聊天室編程(二)之利用socket實(shí)現(xiàn)單聊聊天室

    這篇文章主要介紹了Java Socket聊天室編程(二)之利用socket實(shí)現(xiàn)單聊聊天室的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • Java實(shí)現(xiàn)簡單碰撞檢測

    Java實(shí)現(xiàn)簡單碰撞檢測

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡單碰撞檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java的字符讀寫類CharArrayReader和CharArrayWriter使用示例

    Java的字符讀寫類CharArrayReader和CharArrayWriter使用示例

    這篇文章主要介紹了Java的字符讀寫類CharArrayReader和CharArrayWriter使用示例,兩個(gè)類分別繼承于Reader和Writer,需要的朋友可以參考下
    2016-06-06
  • Java容器源碼LinkedList原理解析

    Java容器源碼LinkedList原理解析

    這篇文章主要介紹了Java容器源碼LinkedList原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 詳解處理Java中的大對(duì)象的方法

    詳解處理Java中的大對(duì)象的方法

    本文我們將講解一下對(duì)于“大對(duì)象”的優(yōu)化。這里的“大對(duì)象”,是一個(gè)泛化概念,它可能存放在?JVM?中,也可能正在網(wǎng)絡(luò)上傳輸,也可能存在于數(shù)據(jù)庫中,快跟隨小編一起學(xué)習(xí)一下
    2022-04-04

最新評(píng)論