calendar-api
通過date和dateformat能夠格式化並建立乙個日期物件了,但是我們如何才能設定和獲取日期資料的特定部分呢,比如說小時,日,或者分鐘? 我們又如何在日期的這些部分加上或者減去值呢? 答案是使用calendar 類。
calendar類的功能要比date類強大很多,而且在實現方式上也比date類要複雜一些。
calendar類是乙個抽象類,在實際使用時實現特定的子類的物件,建立物件的過程對程式設計師來說是透明的,只需要使用getinstance方法建立即可。
calendar c = calendar.getinstance();//預設是當前日期
使用calendar類代表特定的時間,需要首先建立乙個calendar的物件,然後再設定該物件中的年月日引數來完成。
//建立乙個代表2023年6月12日的calendar物件
calendar c1 =calendar.getinstance();
c1.set(2009, 6 - 1, 12);
calendar類中用以下這些常量表示不同的意義,jdk內的很多類其實都是採用的這種思想
常量描述
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
星期幾set設定
如:
calendar c1 = calendar.getinstance();
呼叫:
publicfinal
void set(int year,int month,int date)
c1.set(2009, 6 - 1, 12);//把calendar物件c1的年月日分別設這為:2009、6、12
利用字段型別設定
如果只設定某個字段,例如日期的值,則可以使用如下set方法:
publicvoid set(int field,int value)
把 c1物件代表的日期設定為10號,其它所有的數值會被重新計算
c1.set(calendar.date,10);
把c1物件代表的年份設定為2023年,其他的所有數值會被重新計算
c1.set(calendar.year,2008);
其他字段屬性set的意義以此類推
add設定
calendar c1 = calendar.getinstance();
把c1物件的日期加上10,也就是c1也就表示為10天後的日期,其它所有的數值會被重新計算
c1.add(calendar.date, 10);
把c1物件的日期減去10,也就是c1也就表示為10天前的日期,其它所有的數值會被重新計算
c1.add(calendar.date, -10);
其他字段屬性的add的意義以此類推
calendar c1 =calendar.getinstance();//獲得年份
int year =c1.get(calendar.year);
//獲得月份
int month = c1.get(calendar.month) + 1;
//獲得日期
int date =c1.get(calendar.date);
//獲得小時
int hour =c1.get(calendar.hour_of_day);
//獲得分鐘
int minute =c1.get(calendar.minute);
//獲得秒
int second =c1.get(calendar.second);
//獲得星期幾(注意(這個與date類是不同的):1代表星期日、2代表星期一、3代表星期二,以此類推)
int day = c1.get(calendar.day_of_week);
Calendar類 字段操作相關
可以使用三種方法更改日曆字段 set add 和roll 其中,set 方法用來設定日曆的字段值。本次主要記錄一下add 方法和roll 方法。一 roll 方法 幫助文件中 roll f,delta 將delta新增到f欄位中,但不更改更大的字段。我遇到的問題 當前日期為2008 05 01,我想...
常用類 Calendar類
calendar類概述及其方法 calendar 類是乙個抽象類,它為特定瞬間與一組諸如 year month day of month hour 等 日曆字段之間的轉換提供了一些方法,並為操作日曆字段 例如獲得下星期的日期 提供了一些方法。成員方法 public static calendar g...
Date類以及Calendar類
date類和calendar類均是對時間進行的一些表示。首先來看一下date類的構造方法 date 根據當前的預設毫秒值建立日期物件 date long date 根據給定的毫秒值建立日期物件 system.out.println new date 結果 fri jun 05 15 09 27 cs...