Java中Calendar類的一些常用方法小結(jié)
原理簡介
Java中提供了Calendar這個專門用于對日歷進行操作的類,那么這個類有什么特殊的地方呢,首先我們來看Calendar的聲明:
public abstract class Calendar extends Objectimplements Serializable, Cloneable, Comparable<Calendar>{}
該類被abstract所修飾,說明該類是一個抽象類,所以不能直接通過new該類對象來進行實例化,為此Calendar類提供了兩種實例化方式:
方法1:通過創(chuàng)建其子類的對象(GregorianCalendar)的對象來進行實例化
方法2:調(diào)用其靜態(tài)方法getInstance()方法來進行實例化,以獲得此類型的一個通用的對象,getInstance方法返回一個Calendar對象(該對象為Calendar的子類所創(chuàng)建的對象),其日歷字段已由當前日期和時間初始化(通常都選擇方法2來進行實例化。)
Calendar nowTime = Calendar.getInstance();//使用默認時區(qū)和語言環(huán)境獲得一個日歷
?Calendar 類常用方法的記錄:
獲取時間
// 使用默認時區(qū)和語言環(huán)境獲得一個日歷 Calendar cal = Calendar.getInstance(); // 賦值時年月日時分秒常用的6個值,注意月份下標從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("時:" + cal.get(Calendar.HOUR_OF_DAY)); System.out.println("分:" + cal.get(Calendar.MINUTE)); System.out.println("秒:" + cal.get(Calendar.SECOND));
今天是 2018 年 2 月 12 日,運行結(jié)果:
年:2018
月:2
日:12
時:15
分:57
秒:39
設(shè)置時間
月份的下標從 0 開始,設(shè)置時同樣需要注意,比如我們設(shè)置為 2 月 15 日除夕當晚的倒計時的最后一秒: 2018-02-15 23:59:59
可以這樣:
Calendar cal = Calendar.getInstance(); // 如果想設(shè)置為某個日期,可以一次設(shè)置年月日時分秒,由于月份下標從0開始賦值月份要-1 // cal.set(year, month, date, hourOfDay, minute, second); cal.set(2018, 1, 15, 23, 59, 59);
或者也可以單個字段一一設(shè)置:
// 或者6個字段分別進行設(shè)置,由于月份下標從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());
打印的時間結(jié)果為:
? ? Thu Feb 15 23:59:59 CST 2018
時間計算
add方法:
比如在除夕當晚最后一秒,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());
打印時間結(jié)果如下,日期會自動進入下一天:
? ? Thu Feb 15 23:59:59 CST 2018
? ? Fri Feb 16 00:00:00 CST 2018
再比如 1 月 31 號的時候,月份加一,會出現(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());
運行結(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Socket聊天室編程(二)之利用socket實現(xiàn)單聊聊天室
這篇文章主要介紹了Java Socket聊天室編程(二)之利用socket實現(xiàn)單聊聊天室的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09Java的字符讀寫類CharArrayReader和CharArrayWriter使用示例
這篇文章主要介紹了Java的字符讀寫類CharArrayReader和CharArrayWriter使用示例,兩個類分別繼承于Reader和Writer,需要的朋友可以參考下2016-06-06