尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
接觸過Java的同學應該都知道,Java有很多可以直接拿來使用的工具類,而這些工具類大部分來自於java.util包,有處理字符串的專門類,有從控制台輸入的類等,而我們今天主要討論的是Java中處理日期時間的類,JDK1.1之前我們通常使用java.util.Date這個類來處理日期時間,但是自JDK1.1之後推出了Calendar(日曆)這個抽象類來專門用來日期時間,那麼我們接下來就來研究研究這個Calendar類.
Calendar 類是一個抽象類,它為特定瞬間與一組諸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日曆字段之間的轉換提供了一些方法,並為操作日曆字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距歷元(即格林威治標準時間1970 年 1 月 1 日的 00:00:00.000,格里高利歷)的偏移量.
這是官方API對Calendar的解釋,
作為抽象類,他本身不能直接實例化,程序只能創建Calendar子類的實例,Java本身提供了一個CregorianCalendar類,一個代表格里高利日曆的子類,它代表了通常所說的公歷.
Calendar的用法包括了一下幾點:
1)獲得年、月、日、周、小時、分鐘
get(int field): 參數表示日曆字段。如年、月、日等,它被Calendar類的靜態常量,用法如下:
獲得年:c.get(Calendar.YEAR)
獲得月:c.get(Calendar.MONTH)
獲得日:c.get(Calendar.DATE)
2)設置年、月、日、周、小時、分鐘
set(int field,int value):參數field的取值為Calendar.YEAR、Calendar.MONTH..
3)日期相加減
add(int fields, int amount):參數fields表示日曆字段;amount為字段添加的日期或時間量,可以為負數。
將當前年份減1年:c.add(Calendar.YEAR,-1):
將當前天數加2天:c.add(Calendar.DATE,2)
4)將日期轉換為Date對象
Date d=c.getTime();
Calendar中一些陷阱,很容易掉下去:
1、Calendar的星期是從周日開始的,常量值為0。
2、Calendar的月份是從一月開始的,常量值為0。
3、Calendar的每個月的第一天值為1。
下面給出一個綜合實例看看Calendar類的用法: