Java中Calendar日期類(lèi)常用方法演示
介紹
Calendar 類(lèi)是一個(gè)抽象類(lèi),它為特定瞬間與 YEAR 、 MONTH 、 DAY_OF—MONTH 、 HOUR 等日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(如獲得下星期的日期) 提供了一些方法。
創(chuàng)建 Calendar 對(duì)象不能使用 new 關(guān)鍵字,因?yàn)?nbsp;Calendar 類(lèi)是一個(gè)抽象類(lèi),但是它提供了一個(gè)getInstance() 方法來(lái)獲得 Calendar 類(lèi)的對(duì)象。 getInstance() 方法返回一個(gè) Calendar 對(duì)象,其日歷字段已由當(dāng)前日期和時(shí)間初始化。
Calendar對(duì)象實(shí)例化演示:
Calendar c = Calendar.getInstance();
方法展示:
方法 | 描述 |
void add(int field, int amount) | 根據(jù)日歷的規(guī)則,為給定的日歷字段 field 添加或減去指定的時(shí)間 量 amount |
boolean after(Object when) | 判斷此 Calendar 表示的時(shí)間是否在指定時(shí)間 when 之后,并返回 判斷結(jié)果 |
boolean before(Object when) | 判斷此 Calendar 表示的時(shí)間是否在指定時(shí)間 when 之前,并返回 判斷結(jié)果 |
void clear() | 清空 Calendar 中的日期時(shí)間值 |
int compareTo(Calendar anotherCalendar) | 比較兩個(gè) Calendar 對(duì)象表示的時(shí)間值(從格林威治時(shí)間 1970 年 01 月 01 日 00 時(shí) 00 分 00 秒至現(xiàn)在的毫秒偏移量),大則返回 1 ,小則返回 -1 ,相等返回 0 |
int get(int field) | 返回指定日歷字段的值 |
int getActualMaximum(int field) | 返回指定日歷字段可能擁有的最大值 |
int getActualMinimum(int field) | 返回指定日歷字段可能擁有的最小值 |
int getFirstDayOfWeek() | 獲取一星期的第一天。根據(jù)不同的國(guó)家地區(qū),返回不同的值 |
static Calendar getInstance() | 使用默認(rèn)時(shí)區(qū)和語(yǔ)言壞境獲得一個(gè)日歷 |
static Calendar getInstance(TimeZone zone) | 使用指定時(shí)區(qū)和默認(rèn)語(yǔ)言環(huán)境獲得一個(gè)日歷 |
static Calendar getInstance(TimeZone zone, Locale aLocale) | 使用指定時(shí)區(qū)和語(yǔ)言環(huán)境獲得一個(gè)日歷 |
Date getTime() | 返回一個(gè)表示此 Calendar 時(shí)間值(從格林威治時(shí)間 1970 年 01 月 01 日 00 時(shí) 00 分 00 秒至現(xiàn)在的毫秒偏移量)的 Date 對(duì)象 |
long getTimeInMillis() | 返回此 Calendar 的時(shí)間值,以毫秒為單位 |
void set(int field, int value) | 為指定的日歷字段設(shè)置給定值 |
void set(int year, int month, int date) | 設(shè)置日歷字段 YEAR 、 MONTH 和 DAY_OF_MONTH 的值 |
void set(int year, int month, int date, int hourOfDay, int minute, int second) | 設(shè)置字段 YEAR 、 MONTH 、 DAY_OF_MONTH 、 HOUR 、 MINUTE 和 SECOND 的值 |
void setFirstDayOfWeek(int value) | 設(shè)置一星期的第一天是哪一天 |
Calendar 對(duì)象可以調(diào)用 set() 方法將日歷翻到任何一個(gè)時(shí)間,當(dāng)參數(shù) year 取負(fù)數(shù)時(shí)表示公元前。Calendar 對(duì)象調(diào)用 get() 方法可以獲取有關(guān)年、月、日等時(shí)間信息,參數(shù) field 的有效值Calendar 靜態(tài)常量指定。
Calendar 類(lèi)中定義了許多常量,分別表示不同的意義。
- Calendar.YEAR:年份。
- Calendar.MONTH:月份。
- Calendar.DATE:日期。
- Calendar.DAY_OF_MONTH:日期,和上面的字段意義完全相同。
- Calendar.HOUR:12小時(shí)制的小時(shí)。
- Calendar.HOUR_OF_DAY:24 小時(shí)制的小時(shí)。
- Calendar.MINUTE:分鐘。
- Calendar.SECOND:秒。
- Calendar.DAY_OF_WEEK:星期幾。
常用方法演示:
1、void add(int field, int amount),根據(jù)日歷的規(guī)則,為給定的日歷字段 field 添加或減去指定的時(shí)間量 amount,第一個(gè)參數(shù)雖然傳的為int類(lèi)型,但Java官方怕我們記錯(cuò)所以可以用"Calendar."去得到我們想添加或減去的指定時(shí)間量,例如下列代碼第一個(gè)參數(shù)傳入"Calendar.DATE",代表在天數(shù)上添加或減去:
//獲取默為當(dāng)前時(shí)間的Calendar日期對(duì)象 Calendar c = Calendar.getInstance(); //格式化日期輸出當(dāng)前日期 System.out.printf("%tF %<tT%n",c); //加五天 c.add(Calendar.DATE,5); System.out.printf("%tF %<tT%n",c); //在加五天的基礎(chǔ)上減10天 c.add(Calendar.DATE,-10); System.out.printf("%tF %<tT%n",c);
運(yùn)行結(jié)果展示:
2、void clear(),清空 Calendar 中的日期時(shí)間值。此處的清空時(shí)間并不是說(shuō)將時(shí)間設(shè)置為“0000-00-00 00:00:00",而是重置時(shí)間戳為0,即日期為:“1970-01-01 00:00:00”。 代碼演示:
Calendar c = Calendar.getInstance(); //格式化輸出當(dāng)前日期 System.out.printf("%tF %<tT%n",c); //清除日期 c.clear(); //格式化輸出清除后的日期 System.out.printf("%tF %<tT%n",c);
運(yùn)行展示:
3、int get(int field),返回指定日歷字段的值 int 類(lèi)型參數(shù)也可以用“Calendar.”來(lái)代替,這樣更方便編程人員來(lái)識(shí)別使用。
代碼演示:
Calendar c = Calendar.getInstance(); //按年月日時(shí)分秒依次輸出 System.out.println(c.get(Calendar.YEAR)); System.out.println(c.get(Calendar.MONTH)); System.out.println(c.get(Calendar.DATE)); System.out.println(c.get(Calendar.HOUR)); System.out.println(c.get(Calendar.MINUTE)); System.out.println(c.get(Calendar.SECOND));
運(yùn)行結(jié)果展示:
4、 Date getTime(), 返回一個(gè)表示此 Calendar 時(shí)間值(從格林威治時(shí)間 1970 年 01 月 01 日 00 時(shí) 00 分 00 秒至現(xiàn)在的毫秒偏移量)的 Date 對(duì)象,而Date對(duì)象在獲得時(shí)間戳?xí)r調(diào)用的為gettime()方法,因此我們可以利用此方法來(lái)事項(xiàng)將Calendar對(duì)象轉(zhuǎn)化為時(shí)間戳。 代碼演示:
Calendar c = Calendar.getInstance(); //獲得Date對(duì)象 Date date = c.getTime(); //利用Date對(duì)象獲取時(shí)間戳 long l = date.getTime(); System.out.println(l);
運(yùn)行結(jié)果演示:
5、long getTimeInMillis() ,4方法中獲取時(shí)間戳的方法過(guò)于麻煩,我們可以利用此方法直接獲取時(shí)間戳:
代碼演示:
Calendar c = Calendar.getInstance(); //獲取Calendar對(duì)象時(shí)間戳 long l = c.getTimeInMillis(); System.out.println(l);
運(yùn)行結(jié)果展示:
6、void set(int field, int value) ,為指定的日歷字段設(shè)置給定值,此方法們可以只針對(duì)年月日時(shí)分秒其中一項(xiàng)進(jìn)行時(shí)間修改:
代碼演示:
Calendar c = Calendar.getInstance(); //分別對(duì)年月日時(shí)分秒進(jìn)行修改 c.set(Calendar.YEAR,2022); c.set(Calendar.MONTH,1); c.set(Calendar.DATE,1); c.set(Calendar.HOUR,0); c.set(Calendar.MINUTE,0); c.set(Calendar.SECOND,0); 格式化輸出修改后的Calendar對(duì)象 System.out.printf("%tF %<tT%n",c);
運(yùn)行結(jié)果展示:
7、void set(int year, int month, int date),設(shè)置日歷字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。設(shè)置年月日,時(shí)分秒默認(rèn)為00:00:00,使用此方法進(jìn)行設(shè)置時(shí)要將想要設(shè)置的年份減1,否則得不到想要的結(jié)果。
代碼演示:
Calendar c = Calendar.getInstance(); //設(shè)置為2000年5月8日 c.set(2000,5-1,8); //格式化輸出 System.out.printf("%tF %<tT%n",c);
運(yùn)行結(jié)果展示:
8、void set(int year, int month, int date, int hourOfDay, int minute, int second),該方法7方法相比方法名相同但參數(shù)列表不同,且該方法可以將時(shí)間設(shè)置精確到時(shí)分秒,同樣的在設(shè)置月份的時(shí)候要進(jìn)行減1。
代碼演示:
Calendar c = Calendar.getInstance(); //設(shè)置時(shí)間為2000年5月8日12時(shí)5分59秒 c.set(2000,5-1,8,12,5,59); System.out.printf("%tF %<tT%n",c);
運(yùn)行結(jié)果展示:
總結(jié)
到此這篇關(guān)于Java中Calendar日期類(lèi)用法詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Java Calendar日期類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)戰(zhàn)項(xiàng)目之校園跑腿管理系統(tǒng)的實(shí)現(xiàn)
只有理論是不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Springboot+vue+maven+elementui+mysql實(shí)現(xiàn)一個(gè)校園跑腿管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2022-01-01springboot集成opencv實(shí)現(xiàn)人臉識(shí)別功能的詳細(xì)步驟
大家都知道OpenCV是一個(gè)基于BSD許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上今天通過(guò)本文給大家分享springboot集成opencv實(shí)現(xiàn)人臉識(shí)別,感興趣的朋友一起看看吧2021-06-06java 調(diào)用wsdl協(xié)議接口簡(jiǎn)單實(shí)用方法最新推薦
文章介紹了如何使用POM導(dǎo)入依賴(lài),并編寫(xiě)一個(gè)測(cè)試類(lèi)來(lái)調(diào)用不同的Web服務(wù)接口,通過(guò)訪問(wèn)接口地址,我們可以獲取請(qǐng)求和返回的body,并進(jìn)一步解析返回的JSON結(jié)果,感興趣的朋友一起看看吧2025-03-03POI導(dǎo)出Excel報(bào)錯(cuò)No such file or directory的解決方法
這篇文章主要為大家詳細(xì)介紹了POI導(dǎo)出Excel報(bào)錯(cuò)No such file or directory的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11log4j控制臺(tái)不打印日志故障的詳細(xì)解決方案
這篇文章主要給大家介紹了關(guān)于log4j控制臺(tái)不打印日志故障的詳細(xì)解決方案,log4j不提供默認(rèn)配置,因?yàn)樵谀承┉h(huán)境中可能禁止輸出到控制臺(tái)或文件系統(tǒng),需要的朋友可以參考下2023-08-08Java class文件格式之屬性詳解_動(dòng)力節(jié)點(diǎn)java學(xué)院整理
這篇文章主要介紹了Java class文件格式之屬性詳解,需要的朋友可以參考下2017-06-06Java數(shù)組轉(zhuǎn)換為L(zhǎng)ist的四種方式
這篇文章主要介紹了Java開(kāi)發(fā)技巧數(shù)組轉(zhuǎn)List的四種方式總結(jié),每種方式結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09