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